【问题标题】:Why is my database not updating?为什么我的数据库没有更新?
【发布时间】:2014-03-12 06:47:18
【问题描述】:

我的问题是,当我在数据网格中编辑单元格时,数据库没有更新。 我使用的代码如下。

Public Class Form9
    Inherits System.Windows.Forms.Form
    Dim sql As String = "SELECT * FROM User_Account WHERE IsAdmin=False"
    Dim conn As New OleDb.OleDbConnection
    Dim sqlCom As New System.Data.OleDb.OleDbCommand(sql, conn)
    Dim da As New OleDb.OleDbDataAdapter(sqlCom)
    Dim dt As New DataTable

    Private Sub Form9_Load(ByVal sender As Object, ByVal e As EventArgs) _
        Handles MyBase.Load

        conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & _
            folderpath & "\TKIC\TKIC_Data_Storage.accdb'" & _
            ";Persist Security Info=True"
        conn.Open()
        da.Fill(dt)
        DataGridView1.DataSource = dt
    End Sub

    Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)
        DataGridView1.Update()
        dt.AcceptChanges()
    End Sub
End Class

【问题讨论】:

    标签: vb.net visual-studio ms-access visual-studio-2008 datagridview


    【解决方案1】:

    您必须更新底层DataTableDataGridView.Update 使控件重绘其客户区内的无效区域(基本上是重绘)。 dt.AcceptChanges() 仅提交 DataTable 中的更改,而不是数据库中的更改。必须使用适配器和适当的命令文本显式更新数据库。 OleDbCommandBuilder 有助于形成适当的命令文本。

    使用OleDbDataAdapter 更新数据库。

    OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
    cb.QuotePrefix = "[";
    cb.QuoteSuffix = "]";
    adapter.Update(datatable);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多