加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【转】VB.net 中dataset操作

(2014-11-14 12:51:28)
标签:

dataset

分类: .NET

【转】另外一个基于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}

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有