Dim ADCnn As New ADODB.Connection
Dim ADRs As New ADODB.Recordset
ADCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123456;Data Source=" & App.Path & "\Data\System.mdb"
ADCnn.CursorLocation = adUseClient
ADRs.Open "select * from 库存管理", ADCnn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = ADRs为什么我对DataGrid里的值进行修改 删除 添加 而数据库却没跟着改变呢?
前提是我已设置DataGrid1.AllowAddNew = True
            DataGrid1.AllowDelete = True
            DataGrid1.AllowUpdate = True请大虾指明!谢谢了

解决方案 »

  1.   

    因为你的DataGrid控件是绑定到了RecordSet对象上了,所以当把AllowAddNew、AllowDelete、AllowUpdate这三个属性设为True的时候最多只能修改RecordSet对象里面的对应记录,并不能修改数据库里的对应记录,如果你想修改数据库里数据还需要另外写代码来处理,另外就是可以使用Adodc控件代替RecordSet对象可以实现你的这个功能。
      

  2.   

    因为我整个程序都是用RecordSet完成的!所以您说的“想修改数据库里数据还需要另外写代码来处理”
    请问应该怎样操作?请给个例子
    谢谢!
      

  3.   


    要免代码更新数据,可以直接绑定到 ADODC 控件。
      

  4.   

                 
    Set Adodc1.Recordset = ADRs.Clone
    Adodc1.Recordset.Requery
    Set DataGrid1.DataSource = Adodc1'设计时直接绑定即可
    DataGrid1.Refresh
      

  5.   

    也许是ADO的属性设置有问题吧。给你个例子,是ADO连接ACCESS数据库的。
    过程:(当你已经建立了一个Access数据库,并在此数据库中建了 一个表之后,添加ADO控件到vb设计窗体中)
    1、右击ADO控件->ADODC属性->打开[通用]选项卡选中“使用连接字符串”->点击“生成”按钮->出现一个对话框,在选项卡中选中microsoft jet 4.0 ole db provider->"下一步"即可添加已建立的数据库了...一路确定完成设置
    2、右击ADO控件->ADODC属性->打开[记录源]选项卡->在“命令类型”中选中2-adcmdtable,即可看到你建立的表名字了。在你建立的表中选择要操作的表即可。
    这样就完成了ADO控件和数据库的连接。并可以随意设置了。建议你借本相关教材,做做上面的例子就会明朗很多了。