c#ADO DataSet和DataTable详解

本文详细介绍了C#中如何使用ADO.NET的DataSet和DataTable对象。从创建DataSet和DataTable开始,逐步讲解如何填充数据、查看数据、校验数据、添加、修改和删除数据行,以及处理DataRow的空值。同时,还涵盖了DataTable的属性、方法和事件,以及如何遍历和操作DataSet。最后,讨论了DataSet的用途,如浏览、排序、搜索、缓存更改和与XML数据的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建DataSet对象:

  DataSet ds = new DataSet("DataSetName");

  2、查看调用SqlDataAdapter.Fill创建的结构

  da.Fill(ds,"Orders");

  DataTable tbl = ds.Table[0];

  foreach(DataColumn col in tbl.Columns)

  Console.WriteLine(col.ColumnName);

  3、查看SqlDataAdapter返回的数据

  ①、DataRow对象

  DataTable tbl = ds.Table[0];

  DataRow row = tbl.Row[0];

  Console.WriteLine(ros["OrderID"]);

  ②、检查存储在DataRow中的数据

  DataTable tbl = row.Table;

  foreach(DataColumn col in tbl.Columns)

  Console.WriteLine(row[col]);

  ③、检查DatTable中的DataRow对象

  foreach(DataRow row in tbl.Rows)

  DisplayRow(row);

  4、校验DataSet中的数据

  ①、校验DataColumn的属性:ReadOnly,AllowDBNull,MaxLength,Unique

  ②、DataTable对象的Constrains集合:UiqueConstraints,Primarykey,ForeignkeyConstraints

  通常不必刻意去创建ForeignkeyConstraints,因为当在DataSet的两个DataTable对象之间创建关系时会创建一个。

  ③、用SqlDataAdapter.Fill模式来检索模式信息

  5、编写代码创建DataTable对象

  ①、创建DataTable对象:DataTable tbl = new DataTable("TableName");

  ②、将DataTable添加到DataSet对象的Table集合

  DataSet ds = new DataSet();

  DataTable tbl = new DataTable("Customers");

  ds.Tables.Add(tbl);

  DataSet ds = new DataSet();

  DataTable tbl = ds.Tables.Add("Customers");

  DataTable对象只能存在于至多一个DataSet对象中。如果希望将DataTable添加到多个DataSet中,就必须使用Copy方法或Clone方法。Copy方法创建一个与原DataTable结构相同并且包含相同行的新DataTable;Clone方法创建一个与原DataTable结构相同,但没有包含任何行的新DataTable。

  ③、为DataTable添加列

  DataTable tbl = ds.Tables.Add("Orders");

  DataColumn col =tbl.Columns.Add("OrderID",typeof(int));

  col.AllowDBNull = false;

  col.MaxLength = 5;

  col.Unique = true;

  tbl.PrimaryKey = new DataColumn[]{tbl.Columns["CustomersID"]};

  当设置主键时,AllowDBNull自动设置为False;

  ④、处理自动增量列

  DataSet ds = new DataSet();

  DataTable tbl = ds.Tables.Add("Orders");

  DataColumn col = tbl.Columns.Add("OrderID",typeof(int));

  col.AutoIncrement = true;

  col.AutoIncrementSeed = -1;

  col.AutoIncrementStep = -1;

  col.ReadOnly = true;

  ⑤、添加基于表达式的列

  tbl.Columns.Add("ItemTotal",typeof(Decimal),"Quantity*UnitPrice");

  6、修改DataTable内容

  ①、添加新DataRow

  DataRow row = ds.Tables["Customers"].NewRow();

  row["CustomerID"] = "ALFKI";

  ds.Tables["Customers"].Rows.Add(row);

  object[] aValues ={"ALFKI","A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值