博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# DataSet和DataTable详解1
阅读量:6257 次
发布时间:2019-06-22

本文共 3027 字,大约阅读时间需要 10 分钟。

  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","Alfreds","Anders","030-22222"};

     da.Tables["Customers"].LoadDataRow(aValues,false);

②、修改当前行

修改行的内容逼供内不会自动修改数据库中相应的内容,对行所做的修改被视为是随后将使用SqlDataAdapter对象来提交交给数据库的待定的更改。

DataRow rowCustomer;

rowCustomer = ds.Tables["Custoemrs"].Rows.Find("ANTON");

if(rowCustomer == null)

//没有查找客户

else

{

 

rowCustomer["CompanyName"] ="NewCompanyName";

rowCustomer["ContactName"] ="NewContactName";

}

//推荐使用这种方式

DataRow rowCustomer;

rowCustomer = ds.Tables["Custoemrs"].Rows.Find("ANTON");

if(rowCustomer == null)

//没有查找客户

else

{

rowCustomer.BeginEdit();

rowCustomer["CompanyName"] ="NewCompanyName";

rowCustomer["ContactName"] ="NewContactName";

rowCustomer.EndEdit();

}

//null表示不修改该列的数据

obejct[] aCustomer ={null,"NewCompanyName","NewContactName",null}

DataRow rowCustomer;

rowCustomer = ds.Tables["Customers"].Rows.Find("ALFKI");

rowCustomer.ItemArray = aCustomer;

③、处理DataRow的空值

//查看是否为空

DataRow rowCustomer;

rowCustomer = ds.Tables["Customers"].Rows.Find("ALFKI");

if(rowCustomer.IsNull("Phone"))

转载于:https://www.cnblogs.com/Q685656/archive/2013/01/17/2863877.html

你可能感兴趣的文章
乾坤合一~Linux设备驱动之USB主机和设备驱动
查看>>
Python IDLE快捷键【转载合集】
查看>>
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound
查看>>
[C++] string与int, float, double相互转换
查看>>
ubuntu14.04安装chrome
查看>>
oracle中查询含字母的数据[正则表达式]
查看>>
1002. 写这个号码 (20)(数学啊 ZJU_PAT)
查看>>
【LeetCode】224. Basic Calculator
查看>>
Keil V4.72升级到V5.1X之后
查看>>
Google CFO 辞职信
查看>>
POJ2771_Guardian of Decency(二分图/最大独立集=N-最大匹配)
查看>>
Scala深入浅出实战经典之 List伴生对象操作方法代码实战.
查看>>
php 批量处理post数据
查看>>
RESTful架构详解(转)
查看>>
xcode 在哪里新建category、protocol等文件
查看>>
flash flex 程序出现错误 Error #2032
查看>>
【数据库】主键、外键、索引
查看>>
C#解析HTML
查看>>
导出/打印项目数据报表需要设置IE浏览器
查看>>
8个强大的基于Bootstrap的CSS框架
查看>>