C#DataTable学习心得[转]

时间:2022-10-20 16:21:53

一、DataSet、DataTable、DataRow、DataColumn

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的名称来找DataTable
3】添加行
     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[索引]

二、删除DataTable中的行三种方法:(DataTable.Rows.Remove(DataRow dr)、DataTable.Rows.RemoveAt(i)、DataRow.Delete())

删除DataTable中的行要注意索引问题,一般有两种方法:
1】用for循环时,注意计数器初始值为表长,自减循环。DataTable.Rows.RemoveAt(i)就要注意。
2】用DataTable的Select方法,注意该方法的参数是字符串筛选器
3】Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。若要删除多行,可以连续用Delete(),然后采用AccepteChanges()方法确认删除。