房天下 > 房天下问答 > 家居装修 > 装修前
  • OleDbDataAdapter 更新Access数据库问题困扰啊

    为了更新数据库,做了个测试窗体就两个按钮(显示和更新数据),一个DataGridView1,一个DataSet1,一个OleDbConnection1(连接已经设置),一个OleDbDataAdapter1(SelectCommand已经设置,updatecmd,delcmd等已经自动生成,但发现有问题,里面有很多问号,是怎么回事啊),一个OleDbCommandBuilder1-----------------------------------------------------显示按钮事件代码(可以正常显示数据): Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.OleDbCommandBuilder1.DataAdapter = Me.OleDbDataAdapter1 Me.OleDbDataAdapter1.Fill(Me.DataSet1, "table") Me.DataGridView1.DataSource = Me.DataSet1.Tables(0) End Sub--------------------------------------------------------更新数据按钮代码: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.OleDbCommandBuilder1.DataAdapter = Me.OleDbDataAdapter1 Dim myCount As Integer = Me.OleDbDataAdapter1.Update(Me.DataSet1, "table") Me.DataGridView1.EndEdit() Me.DataSet1.Tables(0).AcceptChanges() M

    门窗 举报

    提问者:wghvc

    发布于2010-10-29

相关搜索推荐

共1个回答
  • hlx999 丨Lv 4
    Builder自动生的sql中,所有你传的变量在 Builder 的 updateText属性 中都是问号的。Me.DataSet1.Tables(0).AcceptChanges()时,更新不进去,可能有三种原因有的列名是sql关键字:1、Me.OleDbDataAdapter1的问题,获得数据源的适合器和更新数据的适配器不是同一个。此种情况的解决方法是:取数据、更新数据都用同一个OleDbDataAdapter2、更新数据库时,更新的列名是数据库关键字,比如你的数据库有一个叫User的列名,如果要更新User这个字段的时候,就会报异常。此种情况的解决方法是:初使化Builder时加如下两句 theBuilder.QuotePrefix = "["; theBuilder.QuoteSuffix = "]";3、更新的数据类型和数据库中对应列的类型不匹配,比如你要更新的列为 [User],它的类型为int,但是你要更新的数据是string类型赋过去的,就会报异常了,此种情况解决方法是:将类型统一. 补充:你可以试着断点看看更新之前更新的数据源有没有相对更新
    +1 2010-10-30 举报
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。