標籤:
1】 在DataSet中添加DataTable DataSet.Tables.Add(DataTable) 執行個體: DataSet ds=new DataSet(); DataTable table=new DataTable("學生表"); ds.Tables.Add(table);2】從DataSet中讀出DataTable DataTable=DataSet.Tables[0]或DataSet.Tables["表名"] 執行個體: DataTable table=ds[i]或DataTable table=ds["學生表"] //i為DataSet中的索引值,因為DataSet可存放多個DataTable,可以根據索引值來找DataTable或直接寫DataTable的名稱來找DataTable3】添加行 DataTable t=new DataTable(); DataRow r=t.NewRow(); r["列名"]=列值; t.Rows.Add(r) ;執行個體: DataTable:學生表 id name 1 xun代碼: DataTable t=new DataTable("學生表"); DataRow r=t.NewRow(); r["id"]=2; r["name"]=xun2; t.Rows.Add(r);4】添加列 DataTable.Columns.Add("列名",Type.GetType("資料類型")) ;5】從行中讀列值 DataRow["列名"]或DataRow[DataColumn]; 6】從DataTable中讀列值 DataTable table; a、table.Rows[i]["列名"] b、table.Rows[i][i] c、table[i].列名(列名不加引號)7】讀出特定的行 DataTable table; DataRow[] selectRow=table.Select("列名=‘"+存放特定的變數.ToString()+"‘"); 選擇其中的一行:selectRow[索引]
一、DataSet、DataTable、DataRow、DataColumn
刪除DataTable中的行要注意索引問題,一般有兩種方法:1】用for迴圈時,注意計數器初始值為表長,自減迴圈。DataTable.Rows.RemoveAt(i)就要注意。2】用DataTable的Select方法,注意該方法的參數是字串篩選器3】Delete()之後需要datatable.AccepteChanges()方法確認完全刪除,因為Delete()只是將相應列的狀態標誌為刪除,還可以通過datatable.RejectChanges()復原,使該行取消刪除。若要刪除多行,可以連續用Delete(),然後採用AccepteChanges()方法確認刪除。
二、刪除DataTable中的行三種方法:(DataTable.Rows.Remove(DataRow dr)、DataTable.Rows.RemoveAt(i)、DataRow.Delete())
DataTable dt = table.DefaultView.ToTable(); //檔案資料 DataTable sorceDt = sorceDt = dateDs2.Tables[0]; //資料庫資料 DataTable except = table.Clone(); //差集 //求差集資料 foreach (DataRow dr in dt.Rows) { DataRow[] dtemp = sorceDt.Select("DonationBarCode=‘" + dr["DonationBarCode"] + "‘ And StartTime=‘" + dr["StartTime"] + "‘"); if (dtemp.Length == 0) { DataRow dr2 = except.NewRow(); dr2 = dr; except.Rows.Add(dr2.ItemArray); } }
三、求兩個datatable的差集
C#DataTable操作