【转】另外一个基于C#的详细说明
http://www.cnblogs.com/zeroone/archive/2012/06/08/2541299.html
在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 datatable
中。其实使用 dataset 相当于所使用数据库中数据的副本,保存在服务器的内存中。
●
注意如下 ado.net 关系:
Connection_____Command____DataAdapter____Dataset
_____Datareader
●
DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update
方法更新回数据库
●
DataSet 相当你用的数据库
DataTable 相当于你的表。一个 DataSet 可以包含多个 DataTable
DataSet
由表、关系和约束的集合组成。在 ADO.NET 中,DataTable 对象用于表示
DataSet 中的表。DataTable
表示一个内存内关系数据的表;
●
以下代码示例演示如何构造
DataSet
的实例。
Dim
cDS
As
DataSet
=
New DataSet( "CustomerOrders
")
以下示例构造一个 DataSet,将一个新的
DataTable
对象添加到该
DataSet
中,然后将三个
DataColumn
对象添加到该表中。最后,该代码将一个列设置为主键列。
Dim
cDS
As
DataSet
=
New DataSet( "CustomerOrders
")
Dim
ordersTable
As
DataTable
= cDS.Tables.Add( "Orders
")
Dim
pkCol
As
DataColumn
= ordersTable.Columns.Add(
"OrderID ", Type.GetType(
"System.Int32 "))
ordersTable.Columns.Add( "OrderQuantity
", Type.GetType( "System.Int32
"))
ordersTable.Columns.Add(
"CompanyName ", Type.GetType(
"System.String "))
ordersTable.PrimaryKey
=
New
DataColumn()
{pkCol}
区分大小写
按名称引用
DataSet
中的表和关系是区分大小写的。一个
DataSet
中可以存在两个或更多个名称相同但大小写不同的表或关系。例如,可以有
Table1
和
table1。在这种情况下,对其中一个表的按名称引用必须精确匹配该表名称的大小写,否则会引发异常。例如,如果
DataSet
myDS
包含表
Table1
和
table1,则会按名称将
Table1
当作 myDS.Tables[ "Table1
"]
来引用,而将
table1
当作
myDS.Tables [ "table1
"]
来引用。如果试图将其中任一个表当作
myDS.Tables [ "TABLE1
"]
来引用,则会生成异常。
如果只存在一个具有特定名称的表或关系,则区分大小写规则不适用。也就是说,如果
DataSet
中没有其他任何表或关系对象匹配该特定表或关系对象的名称,那么即使大小写不同,仍可以按采用任何大小写的名称来引用该对象,而不会引发异常。例如,如果
DataSet
只包含
Table1,则可以使用 myDS.Tables[
"TABLE1 "]
来引用它。
DataSet
的
CaseSensitive
属性不影响此行为。CaseSensitive
属性会应用于
DataSet
中的数据,它将影响排序、搜索、筛选、约束强制等。CaseSensitive
属性不会影响对
DataSet
中表或关系的引用。
一个代码实例
Dim cds As DataSet
= New DataSet("ds")
Dim selectedTable As DataTable =
cds.Tables.Add("selected")
Dim dc As DataColumn = Nothing
dc = selectedTable.Columns.Add("ID ",
Type.GetType("System.Int32"))
dc.AutoIncrement = True '自动增加
dc.AutoIncrementSeed = 1 '起始为1
dc.AutoIncrementStep = 1 '步长为1
dc.AllowDBNull = False
selectedTable.Columns.Add("物料名称",
Type.GetType("System.String"))
selectedTable.Columns.Add("物料代码",
Type.GetType("System.String"))
selectedTable.Columns.Add("部门名称",
Type.GetType("System.String"))
selectedTable.Columns.Add("部门代码",
Type.GetType("System.String"))
selectedTable.Columns.Add("数量",
Type.GetType("System.Double"))
selectedTable.PrimaryKey = New DataColumn() {dc}
加载中,请稍候......