1 / 22
文档名称:

DataSet详细用法(最全面).docx

格式:docx   大小:20KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

DataSet详细用法(最全面).docx

上传人:mirfkk 9/24/2022 文件大小:20 KB

下载得到文件列表

DataSet详细用法(最全面).docx

相关文档

文档介绍

文档介绍:该【DataSet详细用法(最全面) 】是由【mirfkk】上传分享,文档一共【22】页,该文档可以免费在线阅读,需要了解更多关于【DataSet详细用法(最全面) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C#:DataSet用法详解第1页
DataSet用法详细
一、特点介绍
1、处理脱机数据,在多层应用程序中很有用.
2、可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法.
3、处理分级数据
4、缓存更改
5、XML的完好性:DataSet对象和XML文档几乎是可互换的.
二、使用介绍
1、创立DataSet对象:
DataSetds=newDataSet("DataSetName”);
2、查看调用SqlDataAdapter。Fill创立的构造
da。Fill(ds,”Orders”);
DataTabletbl=[0];
foreach(DataColumncolintbl。Columns)
Console。WriteLine(col。ColumnName);
3、查看SqlDataAdapter返回的数据
①DataRow对象
DataTabletbl=ds。Table[0];
DataRowrow=tbl。Row[0];
Console。WriteLine(ros[”OrderID"]);
②检查存储在DataRow中的数据
C#:DataSet用法详解第2页
DataTabletbl=;
foreach(DataColumncolintbl。Columns)
Console。WriteLine(row[col]);
③检查DatTable中的DataRow对象
foreach()
DisplayRow(row);
4、校验DataSet中的数据
①校验DataColumn的属性:ReadOnly,AllowDBNull,MaxLength,Unique(精品文档请下载)
②DataTable对象的Constrains集合:UiqueConstraints,Primarykey,ForeignkeyConstraints(精品文档请下载)
通常不必刻意去创立ForeignkeyConstraints,因为当在DataSet的两个DataTable对象之间创立关系时会创立一个。(精品文档请下载)
③用SqlDataAdapter。Fill形式来检索形式信息
5、编写代码创立DataTable对象
①创立DataTable对象:
DataTabletbl=newDataTable(”TableName”);
②将DataTable添加到DataSet对象的Table集合
DataSetds=newDataSet();
DataTabletbl=newDataTable(”Customers");
。Add(tbl);
C#:DataSet用法详解第3页
DataSetds=newDataSet();
DataTabletbl=。Add("Customers");
DataTable对象只能存在于至多一个DataSet对象中。假设希望将DataTable添加到多个DataSet中,;Clone方法创立一个和原DataTable构造一样,但没有包含任何行的新DataTable.(精品文档请下载)
③为DataTable添加列
DataTabletbl=。Add(”Orders");
DataColumncol=。Add("OrderID”,typeof(int));(精品文档请下载)
col。AllowDBNull=false;
col。MaxLength=5;
col。Unique=true;
=newDataColumn[]{["CustomersID"]};(精品文档请下载)
当设置主键时,AllowDBNull自动设置为False;
④处理自动增量列
DataSetds=newDataSet();
DataTabletbl=。Add("Orders”);
DataColumncol=tbl。Columns。Add("OrderID”,typeof(int));(精品文档请下载)
C#:DataSet用法详解第5页
col。AutoIncrement=true;
col。AutoIncrementSeed=-1;
=—1;
col。ReadOnly=true;
⑤添加基于表达式的列
tbl。Columns。Add(”ItemTotal”,typeof(Decimal),"Quantity*UnitPrice");(精品文档请下载)
6、修改DataTable内容
①添加新DataRow
DataRowrow=["Customers"].NewRow();
row[”CustomerID”]=”ALFKI”;
[”Customers"].Rows。Add(row);
object[]aValues={”ALFKI”,"Alfreds",”Anders”,”030—22222”};(精品文档请下载)
[”Customers”].LoadDataRow(aValues,false);
②修改当前行
修改行的内容逼供内不会自动修改数据库中相应的内容,对行所做的修改被视为是随后将使用SqlDataAdapter对象来提交交给数据库的待定的更改.(精品文档请下载)
DataRowrowCustomer;
rowCustomer=ds。Tables[”Custoemrs"].(”ANTON”);
C#:DataSet用法详解第5页
(精品文档请下载)
if(rowCustomer==null)
//没有查找客户
else
{
rowCustomer["CompanyName”]=”NewCompanyName”;
rowCustomer["ContactName”]=”NewContactName";
}

//推荐使用这种方式
DataRowrowCustomer;
rowCustomer=ds。Tables[”Custoemrs”]。Rows。Find(”ANTON”);(精品文档请下载)
if(rowCustomer==null)
//没有查找客户
else
{
rowCustomer。BeginEdit();
rowCustomer["CompanyName"]=”NewCompanyName”;
rowCustomer["ContactName”]=”NewContactName”;
();
}
//null表示不修改该列的数据
C#:DataSet用法详解第6页
obejct[]aCustomer={null,”NewCompanyName”,"NewContactName”,null}(精品文档请下载)
DataRowrowCustomer;
rowCustomer=ds。Tables[”Customers”].(”ALFKI");(精品文档请下载)
=aCustomer;
③处理DataRow的空值
//查看是否为空
DataRowrowCustomer;
rowCustomer=ds。Tables["Customers”].Rows。Find(”ALFKI");(精品文档请下载)
if(rowCustomer。IsNull(”Phone”))
Console。WriteLine(”It’'''sNull");
else
("It’’’’snotNull");

//赋予空值
rowCustomer[”Phone”]=DBNull。Value;
④删除DataRow
DataRowrowCustomer;
rowCustomer=ds。Tables[”Customers"].Rows。Find(”ALFKI”);(精品文档请下载)
C#:DataSet用法详解第7页
();
⑤去除DataRow
DataRowrowCustomer=["Customers"].(”ALFKI”);(精品文档请下载)
rowCustomer。ItemArray=aCustomer;
da。Tables[”Customers”].Remove(rowCustomer);
或者
ds。Tables["Customers”].RemoveAt(intIndex);
⑥使用DataRow。RowState属性:Unchanged,Detached,Added,Modified,Deleted(精品文档请下载)
privatevoidDemonstrateRowState()
{
//RunafunctiontocreateaDataTablewithonecolumn.(精品文档请下载)
DataTablemyTable=MakeTable();
DataRowmyRow;
//CreateanewDataRow。
myRow=myTable。NewRow();
//Detachedrow.
Console。WriteLine("NewRow”+myRow。RowState);
myTable。Rows。Add(myRow);
C#:DataSet用法详解第9页
//Newrow。
Console。WriteLine(”AddRow”+myRow。RowState);
myTable。AcceptChanges();
//Unchangedrow.
Console。WriteLine(”AcceptChanges"+myRow。RowState);(精品文档请下载)
myRow["FirstName”]=”Scott";
//Modifiedrow。
Console。WriteLine("Modified”+myRow。RowState);
myRow。Delete();
//Deletedrow。
(”Deleted”+myRow。RowState);
}
⑦检查DataRow中的挂起更改
DataRowrowCustomer;
rowCustomer=ds。Tables[”Customers"].Rows。Find(”ALFKI”);(精品文档请下载)
rowCustomer[”CompanyName”]=”NewCompanyName";
stringstrNewCompanyName,strOldCompanyName;
Console。WriteLine(rowCustomer["CompanyName”,DataRowVersion。Current]);(精品文档请下载)
Console。WriteLine(rowCustomer["CompanyName”,DataRowVersion。Original]);
C#:DataSet用法详解第9页
(精品文档请下载)
⑧遍历DataSet
foreach(DataTabledtindataSet。Tables)
foreach()
foreach(。Columns)
Console。WriteLine(dr[dc]);
三、属性方法事件介绍
1、DataSet
①属性
CaseSensitive:用于控制DataTable中的字符串比较是否区分大小写.
DataSetName:当前DataSet的名称。假设不指定,那么该属性值设置为"NewDataSet".假设将DataSet内容写入XML文件,DataSetName是XML文件的根节点名称。(精品文档请下载)
DesignMode:假设在设计时使用组件中的DataSet,DesignMode返回True,否那么返回False。(精品文档请下载)
HasErrors:,那么在提交更改后必须检查DataSet的HasErrors属性,以确定是否有更新失败。(精品文档请下载)
C#:DataSet用法详解第10页
NameSpace和Prefix:指定XML命名空间和前缀
Relations:返回一个DataRelationCollection对象。
Tables:。
②方法
AcceptChanges和RejectChanges:,。调用RejectChanges时,任何标记为Added的DataRow对象将会被从DataSet中删除,其他修改正的DatRow对象将返回前一状态。(精品文档请下载)
Clear:去除DataSet中所有DataRow对象。该方法比释放一个DataSet然后再创立一个一样构造的新DataSet要快。(精品文档请下载)
Clone和Copy:,但不包含任何行。(精品文档请下载)
GetChanges:返回和原DataSet对象具有一样构造的新DataSet,并且还包含原DataSet中所有挂起更改的行.(精品文档请下载)
GetXml和GetXmlSchema:使用GetXml方法得到由DataSet的内容和她的架构信息转换为XML格式后的字符串。假设只希望返回架构信息,可以使用GetXmlSchema。(精品文档请下载)