亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

一個DataTable賦值給另一個DataTable的常用方法

2019-11-17 01:51:35
字體:
來源:轉載
供稿:網友

一個DataTable賦值給另一個DataTable的常用方法

DataView view = new DataView();view.Table= DataTableA;view.RowFilter = "itemType = 'book'";//itemType是DataTableA中的一個字段DataTableB= view.ToTable();或者:DataRow[] rows = DataTableA.Select("itemType = 'book'");DataTableB= DataTableA.Clone();foreach (DataRow row in rows){ DataTableB.ImportRow(row);}

或者

/// 執行DataTable中的查詢返回新的DataTable/// </summary>/// <param name="dt">源數據DataTable</param>/// <param name="condition">查詢條件</param>/// <returns></returns>PRivate DataTable GetNewDataTable(DataTable dt, string condition,string sortstr){DataTable newdt = new DataTable();newdt = dt.Clone();DataRow[] dr = dt.Select(condition,sortstr);for (int i = 0; i < dr.Length; i++){newdt.ImportRow((DataRow)dr[i]);}return newdt;//返回的查詢結果

}

或者 逐列的形式

public static int TableDataExchange(DataSet ds, string tableName, DataTable sourceDT) { for(int i=0;i<sourceDT.Rows.Count;i++) { DataRow drNew = ds.Tables[tableName].NewRow(); foreach (DataColumn dc in sourceDT.Columns) { drNew[dc.ColumnName] = sourceDT.Rows[i][dc.ColumnName]; } ds.Tables[tableName].Rows.Add(drNew); } ds.Tables[tableName].AcceptChanges(); DataTable dt = ds.Tables[tableName]; return ds.Tables[tableName].Rows.Count; }

或者

DataSet 對象是支持 ADO.NET的斷開式、分布式數據方案的核心對象 ,用途非常廣泛.我們很多時候需要使用其中的數據,比如取得一個DataTable的數據或者復制另一個DataTabe中的數據或者是DataRow的數據,但是只有DataSet和DataTable的復制是支持深層復制的,就是說不僅能復制元素的結構,而且能復制元素的數據,而DatatDataRow沒有相關的復制的方法,下面將簡單介紹下這些數據元素的復制問題。

DataTable sourceTable;DataTable objectTable;DatatDataRow sourceRow;DatatDataRow objectRow;DataRow tempRow;DataSet souceDataSet = new DataSet();

復制DataSet

DataSet object = souceDataSet.Copy();//深復制 DataSet object = souceDataSet.Clone();//淺復制,只復制架構

復制DataTable

objectTable = sourceTable .Copy();//深復制 objectTable = sourceTable .Clone();//淺復制,只復制架構

復制DataRow

項目開發中經常遇到這種錯誤-“此行已屬于另一個表” 。導致這個錯誤的語句如下:

objectTable .Rows.Add(SourceDataRow);

分析了一下原因,因為DataRow DataTable 都是傳引用調用的。所以一個行在一個表中了,就不能再增加到另外一個表。

具體方法:

1 ImportRow方法:public void ImportRow( DataRow DataRow);

objectTable = sourceTable.clone();//必須先復制表的架構,使具有相同的的列或關系!foreach (DataRow oRow in sourceTable){

objectTable.ImportRow(oRow);//在objectTable中添加一個新行,并將sourceRow的值復制進去,要求表的結構一樣!

}

_____________________________________________________________________________________________________

2. 循環DataTable的每個列

DataRow aDataRow = objectTable.NewRow();

foreach(DataColumn aDataColumn in sourceTable.Columns)

{

aDataRow [aDataColumn.ColumnName] = sourceTable[i][aDataColumn.ColumnName];

}

objectTable.Rows.Add(aDataRow);

3. 自定義復制

objectTable.Columns.Add ("id");//不需要有一樣的架構,只復制自己需要的列!Object [] myArry = new Object [1]; foreach (DataRow oRow in sourceTable){

tempRow = objectTable.NewRow();//此方法必須調用! myArry[0] = oRow["id"];//如果myArry中沒有源表中的id列的話就會報錯! tempRow.ItemArray = myArry;//ItemArray屬性為Object類型數組,根據程序的需要需要可自行復制多個列的數據! objectTable.Rows.Add(tempRow); //此方法必須調用,否則DataRow中的數據將不能顯示!

}_____________________________________________________________________________________________________

4. LoadDataRow方法:public DataRow LoadDataRow(Object[] values,bool fAcceptChanges);

Object[] newRow = new Object[3]; // 設置對象數組的值 newRow[0] = "Hello"; newRow[1] = "World"; newRow[2] = "two"; DataRow myRow; ObjectTable.BeginLoadData(); // 將新行添加到表中 myRow = ObjectTable.LoadDataRow(newRow, true);//標志要設置為true,表示添加新行 ObjectTable.EndLoadData();

該方法比較復雜,如果只是簡單的復制現有行的數據來添加新行的話建議不要采用,具體用法請參看sdk文擋。

或者:

< type="text/javaScrJavascript>

我們經常需要向DataTable中添加一行數據,大多數的情況下都是把一些從UI的控件和程序的變量中收集的數據添加到DataTable中。如以下的語句把供應商代碼和名稱添加到DataTable中:

DataTable dtProvider = new DataTable(); DataRow drRow = dtProvider.NewRow(); drRow[0] = txtProviderCode.Text.Trim(); drRow[1] = txtProviderName.Text.Trim(); dtProvider.Rows.Add(drRow);

大多數的情況下這幾行語句是完全可以滿足要求的。但是如果想把另一個同樣結構的DataTable的某一行添加到這個dtProvider中,就不能簡單的添加了。否則會提示一個錯誤“This row belongs to another table.”。這個時候我們必須定義另一個DataRow,把源DataRow的數據賦到目的DataRow中,再Add進DataTable中就可以了。如下所示:

DataTable dtProvider = new DataTable(); DataRow drTarget = dtProvider.NewRow(); drTarget.ItemArry = drSource.ItemArry; // 注意:這里的drSource是另一個相同結構的DataTable中的一行。 dtProvider.Rows.Add(drTarget); < type="text/JavaScript"> alimama_pid="mm_10249644_1605763_5027492"; alimama_type="f"; alimama_sizecode ="tl_1x5_8"; alimama_fontsize=12; alimama_bordercolor="FFFFFF"; alimama_bgcolor="FFFFFF"; alimama_titlecolor="0000FF"; alimama_underline=0; alimama_height=22; alimama_width=0; < src="http://a.alimama.cn/inf.js" type=text/javascript>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成网在线播放| 亚洲肉体裸体xxxx137| 性欧美xxxx视频在线观看| 久久福利视频导航| 欧美一级bbbbb性bbbb喷潮片| 色妞一区二区三区| 国产欧美亚洲视频| 久久精品国产96久久久香蕉| 久久在精品线影院精品国产| 久久久精品国产网站| 日韩电影在线观看永久视频免费网站| 欧美激情精品久久久久久免费印度| 国产香蕉97碰碰久久人人| 国产精品久久久久久av| 亚洲色无码播放| 久久久久久免费精品| 国产精品久久一区| 成人免费观看a| 亚洲色图偷窥自拍| 91沈先生在线观看| 久久久亚洲精品视频| 午夜精品美女自拍福到在线| 亚洲国产精品悠悠久久琪琪| 日韩欧美在线中文字幕| 伊人伊成久久人综合网小说| 国产成人高清激情视频在线观看| 亚洲综合成人婷婷小说| 国产精品91一区| 热久久免费视频精品| 国产日韩精品综合网站| 欧洲午夜精品久久久| 欧美日韩中国免费专区在线看| 欧美性猛交xxxx乱大交极品| 激情成人中文字幕| 国产午夜精品美女视频明星a级| 国产精品日韩在线观看| 久久精品视频在线观看| 欧美电影在线观看完整版| 国产精品亚洲视频在线观看| 日本精品免费一区二区三区| 欧美成人激情在线| 欧美在线视频免费播放| 日本午夜在线亚洲.国产| 欧美成人免费网| 精品调教chinesegay| 日韩欧美在线视频免费观看| 日韩在线视频免费观看高清中文| 欧美精品免费播放| 在线观看国产精品91| 亚洲欧美中文日韩v在线观看| 全色精品综合影院| 91精品国产综合久久香蕉的用户体验| 91久久精品国产91性色| 亚洲女在线观看| 亚洲自拍高清视频网站| 伊人久久精品视频| 最近2019中文字幕一页二页| 日韩激情视频在线播放| 性夜试看影院91社区| 欧美国产日韩中文字幕在线| 国产精品美腿一区在线看| 亚洲精品v天堂中文字幕| 97在线视频免费| 91精品国产91久久久| 中文日韩在线视频| 久久婷婷国产麻豆91天堂| 激情懂色av一区av二区av| 国产精品第100页| 亚洲精品国产品国语在线| 久久久精品美女| 欧美性xxxxxxxxx| 91夜夜未满十八勿入爽爽影院| 国产精品自拍偷拍| 亚洲精品国产免费| 久久久国产影院| 欧美中文字幕视频在线观看| 自拍偷拍亚洲精品| 黄色一区二区在线| 黄网动漫久久久| 亚洲电影免费观看高清| 国产精品自产拍在线观看中文| 91最新在线免费观看| 久久亚洲精品中文字幕冲田杏梨| 亚洲伊人第一页| 伦伦影院午夜日韩欧美限制| 亚洲国产黄色片| 亚洲一区二区三区777| 亚洲欧美精品伊人久久| 欧美精品在线免费播放| 亚洲美女在线看| 一区二区国产精品视频| 久久亚洲精品毛片| 91九色视频在线| 亚洲香蕉在线观看| 精品国内自产拍在线观看| 日韩精品在线电影| 欧美一级视频免费在线观看| 成人一区二区电影| 亚洲性av网站| 欧美在线一级视频| 在线观看国产欧美| 亚洲free性xxxx护士hd| 亚洲高清一区二| 欧美一乱一性一交一视频| 亚洲精品动漫久久久久| 久久躁日日躁aaaaxxxx| 97久久伊人激情网| 久久99热精品这里久久精品| 国产成人精品免费久久久久| 欧美日韩美女在线观看| 在线观看国产精品91| 国产69精品久久久久99| 日韩久久精品成人| 亚洲国产精品推荐| 一本色道久久88精品综合| 中文字幕亚洲第一| 91av在线看| 欧美激情一区二区三区成人| 亚洲女性裸体视频| 亚洲自拍偷拍色片视频| 国产精品www网站| 久久av资源网站| 精品久久香蕉国产线看观看亚洲| 欧美巨乳美女视频| 亚洲高清在线观看| 亚洲欧美日韩爽爽影院| 国产+人+亚洲| 全球成人中文在线| 国产精品高潮呻吟久久av无限| 精品国产自在精品国产浪潮| 国产一区二区三区视频免费| 日韩成人av网址| 亚洲国产日韩欧美综合久久| 在线电影欧美日韩一区二区私密| 欧美大片va欧美在线播放| 69精品小视频| 国产精品视频久久久| 国产美女久久精品香蕉69| 亚洲第一福利在线观看| 久久久久久久久久国产精品| 欧美日韩国内自拍| 一区二区在线免费视频| 精品欧美国产一区二区三区| 日韩精品中文字| 992tv成人免费视频| 久久精品中文字幕| 国产欧美一区二区三区视频| 欧美日韩国产成人在线| 欧美有码在线观看| 91精品啪在线观看麻豆免费| 亚洲女同精品视频| 久久成人18免费网站| 国产大片精品免费永久看nba| 亚洲女人被黑人巨大进入| 成人h猎奇视频网站| 国产成人精品日本亚洲| 在线观看欧美日韩| 欧美成在线观看| 亚洲自拍av在线| 久久在线精品视频| 成人免费网站在线观看| 日韩精品极品在线观看| 在线视频精品一| 久久人人97超碰精品888|