ADO.NET的记忆碎片(五)

到目前为止我们发现我们使用的DataTable对象、DataColumn对象和DataRow对象都是在调用DataAdapter的Fill()方法之后自动生成的,但是如何自己手动操作这些对象。
不过这几个对象的关系我们很清楚了,另外其实这几个对象的手动创建的方式有很多相似的地方,我也不想写很多冗余的,不过为了增加一定的阅读性,要是真的冗余了,也是为了文章更加的清晰。
在DataSet中创建DataTable:

DataSet ds = new DataSet("MyDataSet");
DataTable table = new DataTable("MyDataTable");
ds.Tables.Add(table);

使用语法糖:

DataSet ds = new DataSet("MyDataSet");
DataTable table = ds.Tables.Add("MyDataTable");

在DataTable中创建DataColumn

直接使用语法糖:

DataColumn col1 = table.Columns.Add("ID");
DataColumn col2 = table.Columns.Add("Name");

可以为DataColumn指定数据类型:

DataColumn col1 = table.Columns.Add("ID",typeof(int));
DataColumn col2 = table.Columns.Add("Name",typeof(string));

增加DataRow:

DataRow row = table.NewRow();
row["ID"] = 1;
row["Name"] = "LMF";
table.Rows.Add(row);

使用语法糖:

table.Rows.Add(1,"lmf");

修改现有行数据,在拥有一个row对象之后,可以使用对象的Item属性来设定一列数据的值,这个属性是可读写的,代码:

if(row!=null)
{
    row["Name"] = "ming";
}

删除DataRow:

row.Delete();

移除DataRow:

1、table.Rows.Remove(row);
//根据行的索引移除
2、table.Rows.RemoveAt(table.Rows.IndexOf(row));

 还有DataSet和DataTable类都具有一个Clear(),使用这个方法后会删除全部的DataRow对象,同时保留其结构:

table.Clear();

这里面删除和移除的区别是:删除是在DataSet中把这一行标记为Deleted,在将来提交数据库时候,在数据库中真实删除这一行数据。移除是单纯的在DataSet中移除这一条数据,然后在DataSet中就不能再次访问到,但是将来在提交数据库时,并不会删除该记录。
到目前为止,我们也仅仅讨论了,非常非常基础的部分,在后面是真的要拼刺刀的,blog也很难写,有兴趣继续了解的后面对DataSet中的数据关系处理和排序搜索筛选,以及向数据库提交更新的部分的请关注我:)

你可能感兴趣的:(.net)