且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ADO.NET关键点DataSet(转)

更新时间:2022-09-14 19:19:46


(1)ADO.NET关键点---结构及概述

(2)ADO.NET关键点---数据提供程序
(3)ADO.NET关键点---DataSet

0、DataSet概述

使用Dataset的几个步骤

1.创建到数据源的连接:
SQLConnection con =new SQLConnection("server=localhost;uid=sa;pwd=;database=pubs");

2.创建DataSetCommand对象:
SQLDataSetCommand cmd =new SQLDataSetCommand("SELECT * FROM Authors", con);

3.创建一个Dataset对象
DataSet ds = new DataSet();

4.调用DataSetCommandFillData方法填充数据。(该方法会自动控制链接状态)
int iRowCount = cmd.FillDataSet(ds, "Authors");

5.循环读取DataSet中的数据
for(int i=0; i< iRowCount; i++){
DataRow dr = ds.Tables[0].Rows[i];
Console.WriteLine(dr["au_lname"]);
}

1、DataSet

DataSet类完整的例子:

建立一个与NorthWind示例数据库对应的数据集:

ADO.NET关键点DataSet(转)//以下代码分层次建立数据集的结构
ADO.NET关键点DataSet(转)
DataSet NorthWind = new DataSet();
ADO.NET关键点DataSet(转)DataTable Employee = new DataTable("Employee");
ADO.NET关键点DataSet(转)DataColumn name = new DataColumn("name");
ADO.NET关键点DataSet(转) name.DataType = typeof(string);
ADO.NET关键点DataSet(转) name.MaxLength = 8;
ADO.NET关键点DataSet(转) Employee.Columns.Add(name);
ADO.NET关键点DataSet(转) NorthWind.Tables.Add(employee);
ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转)//以下代码为数据集添加数据
ADO.NET关键点DataSet(转)
DataRow newEmployee = Employee.NewRow();
ADO.NET关键点DataSet(转)newEmployee["name"] = "Andymore";
ADO.NET关键点DataSet(转)Employee.Rows.Add(newEmployee);
ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转)//读数据
ADO.NET关键点DataSet(转)
String str = Employee.Rows[0]["name"].ToString();
ADO.NET关键点DataSet(转)


DataSet创建与填充:
ADO.NET关键点DataSet(转)DataSet ds = new DataSet(); //此方法创建的DataSet实例名称默认指定为"NewDataSet"
ADO.NET关键点DataSet(转)
DataSet ds = new DataSet("NorthWind");
ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转)da.Fill(ds); //用ds中填充一个未命名的Table
ADO.NET关键点DataSet(转)
da.Fill(ds,"Employee"); //创建Employee表或用ds中的同名表填充
ADO.NET关键点DataSet(转)

DataSet的读取:
ADO.NET关键点DataSet(转)Foreach (DataTable myTable in myDataSet.Tables)
ADO.NET关键点DataSet(转)ADO.NET关键点DataSet(转)ADO.NET关键点DataSet(转){
ADO.NET关键点DataSet(转) Debug.WriteLine("现在输出的表是:" + myTable.TableName );
ADO.NET关键点DataSet(转) Debug.WriteLine("该表拥有的列数" + mytable.Columns.Count.ToString() );
Debug.WriteLine("该表拥有的行数" + mytable.Rows.Count.ToString() );
ADO.NET关键点DataSet(转) Debug.WriteLine("输出数据如下:");
ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转) Foreach ( DataRow myRow in myTable.Rows)
ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转)ADO.NET关键点DataSet(转)ADO.NET关键点DataSet(转){
ADO.NET关键点DataSet(转) Foreach (DataColumn myColumn in myTable.Columns)
ADO.NET关键点DataSet(转)ADO.NET关键点DataSet(转)ADO.NET关键点DataSet(转){
ADO.NET关键点DataSet(转) Debug.WriteLine ( myColumn.ColumnName + ":" + myRow[myColumn].ToString() );
ADO.NET关键点DataSet(转) }

ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转) Debug.WriteLine(“-------------------------------------”); //下一条记录的分割空行
ADO.NET关键点DataSet(转)}

ADO.NET关键点DataSet(转)
ADO.NET关键点DataSet(转)}

ADO.NET关键点DataSet(转)

2、DataTable

DataTable数据表:
存在于DataSetDataViewTables集合属性中,它有三个集合分别对应它的三个属性

属性

说明

Columns

存放DataColumn对象

Rows

存放DataRow对象

Constraints

存放Constraint对象

删除DataTable
DataTable tbl_Employee = myDataSet.Tables["Employee"]; //删除表,操作前先要获取引用
If (myDataSet.Tables.CanRemove(tbl_Employee)) myDataSet.Tables.Remove("tbl_Employee");

myDataSet.Tables.Remove(Employee); //直接删除
myDataSet.Tables.Clear(); //全部删除

添加 DataTable
myDataSet.Tables.Add(myDataTable); //前边完整例子中有这个
DataTable myDataTable = myDataSet.Tables.Add ("Employee"); //添加一个指定名称的DataTable

查询
通过DataTableSelect方法用SQL语句筛选并返回DataRow[]

DataView
DataView是一个DataTableDataRow的子集转化为的DataRowView集合(列不变)。
它不但能像DataTableSelect方法一样筛选排序,还能直接用于数据绑定。

常用属性:

属性

说明

RowFilter

设置筛选条件(Sql语句)

Sort

设置排序条件(列名+DESC

RowState

设置RowState的枚举值

3、其它类

类似的情况及其它说明:
添加行、列、约束相似,先新建,然后设置相关属性,然后添加。

设置Column的时候可以用System.Type.GetType方法或者typeof操作符来获取类型。
myTable.Columns.Add("name", typeof(String));
myColumn.DataType = System.Type.GetType (System.String);

myRow.Delete 用于标记删除,而不是直接删除,这样便于更新数据源,使数据库更改。
对每行的数据进行更改时,最终都需要使用myRow.AcceptChanges来确认更新执行。
更新数据集时用到行的状态(RowState)和字段值的版本(Current,Original)

设置主键 CustomerTable.PrimaryKey =new DataColumn[] {CustomerTable.Columns["Uid"]};
可以添加关系 DataRelation可以向Constraint集合添加两类约束:
ForeignKeyConstraint
UniqueConstraint

通过主键来筛选一行,返回一个数据行,用Rows属性的Find方法
DataRow ResultRow = tbl_Customers.Rows.Find("ALFKI");




本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2007/10/19/930182.html,如需转载请自行联系原作者