分享
 
 
 

C# DataSet和DataTable详解

王朝学院·作者佚名  2009-11-28
窄屏简体版  字體: |||超大  

C# DataSet和DataTable详解

2009-四-21

一、创造DataSet对象:

DataSet ds = new DataSet("DataSetName");

二、查看调用SqlDataAdapter.Fill创造的构造

da.Fill(ds,"Orders");

DataTable tbl = ds.Table[零];

foreach(DataColumn col in tbl.Columns)

Console.WriteLine(col.ColumnName);

三、查看SqlDataAdapter回到的数据

①、DataRow对象

DataTable tbl = ds.Table[零];

DataRow row = tbl.Row[零];

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);

四、校验DataSet中的数据

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

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

正常无庸刻意去创办ForeignkeyConstraints,由于当在DataSet的两个DataTable对象其间创办关系时会创造一个。

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

五、编纂代码创造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 = 五;

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 = -一;

col.AutoIncrementStep = -一;

col.ReadOnly = true;

⑤、增添基于表达式的列

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

六、批改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"))

Console.WriteLine("It's Null");

else

Console.WriteLine("It's not Null");

//授予空值

rowCustomer["Phone"] = DBNull.Value;

④、剔除DataRow

DataRow rowCustomer;

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

rowCustomer.Delete();

⑤、驱除DataRow

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

rowCustomer.ItemArray = aCustomer;

da.Tables["Customers"].Remove(rowCustomer);

或许

ds.Tables["Customers"].RemoveAt(intIndex);

⑥、运用DataRow.RowState属性 :Unchanged,Detached,Added,Modified,Deleted

private void DemonstrateRowState()

{ // Run a function to create a DataTable with one column. DataTable myTable = MakeTable();DataRow myRow;

// Create a new DataRow. myRow = myTable.NewRow();// Detached row. Console.WriteLine("New Row " + myRow.RowState);

myTable.Rows.Add(myRow);// New row. Console.WriteLine("AddRow " + myRow.RowState);

myTable.AcceptChanges();// Unchanged row. Console.WriteLine("AcceptChanges " + myRow.RowState);

myRow["FirstName"] = "Scott";// Modified row. Console.WriteLine("Modified " + myRow.RowState);

myRow.Delete();// Deleted row. Console.WriteLine("Deleted " + myRow.RowState);}

⑦、检察DataRow中的挂起更动

DataRow rowCustomer;

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

rowCustomer["CompanyName"] = "NewCompanyName";

string strNewCompanyName,strOldCompanyName;

Console.WriteLine(rowCustomer["CompanyName",DataRowVersion.Current]);

Console.WriteLine(rowCustomer["CompanyName",DataRowVersion.Original]);

一、DataSet

①、属性

CaseSensitive:用来统制DataTable中的字符串比较是不是界别大小写。

TOP

本文来源:

我的异常网

Java Exception

Dotnet Exception

Oracle Exception

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有