分享

ADO.net

 slq803 2017-01-19

前面的博客也讲到了使用数据集(此处为DataSet)更新数据库

 

已经了解到DataSet与数据源是断开的,所以不能直接使用DataSet将更改后的数据更新

到数据源。这里用到了数据适配器(DataAdapter)

 

如何做?

 

答:1,从 数据源——>数据集:调用DataAdapter的Fill()方法;

 

2,从 数据集——>数据源:调用DataAdapter的Update()方法;

 

也就是说

——数据适配器是一座桥梁,用于在数据源和数据集之间交换数据

 

计算机生成了可选文字: 数招集数据源图10.11数据适配器

 

 

理论不能代替实践,以下例子更轻松理解:

[csharp] view plain copy
  1. <span style="font-size:24px;">Imports System.Data  
  2. Imports System.Data.SqlClient  
  3.   
  4. Public Class Class1  
  5.     Public Function GetConnection() As SqlConnection  
  6.   
  7.         Dim strConn As String = "server=HANXUEMIN\实例韩学敏;Database=user;uid=sa;pwd=123456"     '连接数据库字符串  
  8.         Dim cn As SqlConnection = New SqlConnection(strConn)                           <span style="color:#006600;"> '直接通过Connection类的构造函数指定连接串  
  9. </span>  
  10.         cn.Open()                                                              '打开连接   打开连接后才可以从数据库中取出数据到数据集中  
  11.         Dim sql As String = "select * from user"                               'sql命令  
  12.         Dim cmd As SqlCommand = New SqlCommand(sql, cn)  '构造名为cmd的命令对象。利用Command构造函数,指定:使用的连接对象为cn,执行的命令是从user表中选择所有数据  
  13.   
  14.         Dim myDataAdapter As SqlDataAdapter = New SqlDataAdapter()      '创建适配器  
  15.         myDataAdapter.SelectCommand = cmd  
  16.   
  17.   
  18.         'Dim myDataAdapter As SqlDataAdapter = New SqlDataAdapter(cmd)  
  19.   
  20.         Dim custCB As SqlCommandBuilder = New SqlCommandBuilder(myDataAdapter)     '自动生成用于数据集更新的命令  
  21.   
  22.         Dim ds As DataSet = New DataSet()                '创建数据集  
  23.         myDataAdapter.Fill(ds, "user")                    '使用适配器的Fill()方法,把从数据源中选中的记录添加到数据集中  
  24.   
  25.         '修改数据集  
  26.         Dim myDataRow As DataRow = ds.Tables(0).NewRow           '在数据集中添加一条记录  
  27.         myDataRow("UserName") = "韩学敏"  
  28.         myDataRow("PassWord") = 123  
  29.         ds.Tables(0).Rows.Add(myDataRow)  
  30.   
  31.         ds.Tables(0).Rows(1)(0) = "陈小二"                           '在数据集中修改一条记录  
  32.         ds.Tables(0).Rows(1)(1) = "456"  
  33.   
  34.         ds.Tables(0).Rows(2).Delete()                                '在数据集中删除一条记录  
  35.   
  36.         myDataAdapter.Update(ds)  
  37.         cn.Close()                        '数据从数据集更新到数据源后,需要关闭连接  
  38.   
  39.   
  40.   
  41.   
  42.   
  43.     End Function  
  44.   
  45. End Class</span>  


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多