当前位置: 移动技术网 > IT编程>开发语言>.net > .Net 中DataSet和DataTable的 区别与联系

.Net 中DataSet和DataTable的 区别与联系

2018年12月06日  | 移动技术网IT编程  | 我要评论

殊利仁波切,aqounsenton,大信事务所

 

1、简要说明二者关系
       在我们编写代码的时候从里取出数据,填充到dataset里,再根据表的名字,实例化到 datatable 中。其实使用 dataset 相当于所使用数据库中数据的副本,保存在服务器的内存中。
       ●注意如下 ado.net 关系:
        connection_____command____dataadapter____dataset  _____datareader

       ● dataset 是放在内存中的,对dataset中数据的修改并不直接反应到数据库,要通过 dataadapter 的 update 方法更新回数据库

       ● dataset相当你用的数据库; datatable相当于你的表。一个 dataset 可以包含多个 datatable

    dataset 由表、关系和约束的集合组成。在 ado.net 中,datatable对象用于表示 dataset 中的表。datatable 表示一个内存内关系数据的表;

2.以下代码示例演示如何构造dataset ,datatable 的实例关系。

 


[vb] 
 dim   ds   as   dataset   =   new   dataset( "enuser ")

 dim   ds   as   dataset   =   new   dataset( "enuser ")
以下示例构造一个 dataset,将一个新的   datatable  对象添加到该   dataset  中,然后将三个   datacolumn  对象添加到该表中。最后,该代码将一个列设置为主键列。

 

[vb] 
  dim   ds   as   dataset   =   new   dataset( "enuser ") 
        dim   orderstable   as   datatable   =   ds.tables.add( "enuser ") 
        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} 
 

   dim   ds   as   dataset   =   new   dataset( "enuser ")
        dim   orderstable   as   datatable   =   ds.tables.add( "enuser ")
        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}

 


3. dataset中table1、table1的大小写关系
        按名称引用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"]   来引用它。

 

以上是对.net 中dataset和datatable的 区别与联系的总结,如有不足之处,还请批评与指教。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网