【问题标题】:Update Records through DataGridView VB.net通过 DataGridView VB.net 更新记录
【发布时间】:2014-01-02 15:59:10
【问题描述】:

您好,我正在 vb.net 和 MS 访问后端开发 WinForm 应用程序。使用 datagridview 我可以通过简单地设置 datagridview 的数据源属性来显示记录。但是我不知道如何通过datagridview更新记录,在vb6中很容易更新记录本身它会更新数据库中的数据,但是在vb.net中如何更新记录?以下代码我用来在datagridview中显示记录..

Dim conn As OleDbConnection
Dim cmd As OleDbCommand
Dim adpt As OleDbDataAdapter
Dim rs As DataTable

    conn = New OleDbConnection
    conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Application.StartupPath & "\sample.mdb"
    conn.Open()


    adpt = New OleDbDataAdapter("select * from table1", conn)
    rs = New DataTable
    adpt.Fill(rs)
    Me.dgv.DataSource = rs

如果我修改 datagridview 中的数据,它不会影响数据库记录。请帮帮我...

【问题讨论】:

  • 你有什么样的索引字段?有时,如果它是一个文本字段并且附加了空格,则更新将失败,因为关键字段不匹配并且无法找到记录。这不会引发错误。
  • 你的意思是数据库字段?我确实有文本、日期和数字字段。 Number 是自动编号类型的主键。

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


【解决方案1】:

为了通过我的datagridview更新我的数据库中的记录,我使用了一个DataSet。

这是我用来填充数据集的代码:

Public Cnn As New OleDb.OleDbConnection
Public Cmd As New OleDb.OleDbCommand
Public DR As OleDbDataReader
Public DA As OleDbDataAdapter
Public DS As DataSet
Public DT As DataTable
Public cmdBld As OleDbCommandBuilder

Cmd = New OleDbCommand("SELECT * FROM table1", Cnn)

Cnn.Open()

DA = New OleDbDataAdapter(Cmd)

cmdBld = New OleDbCommandBuilder(DA)

DS = New DataSet()

DA.Fill(DS, "table1")

DataGridView1.DataSource = DS.Tables("table1").DefaultView

Cnn.Close()

这是将更改从 datagridview 保存到数据库的代码:

Me.Validate()

Me.DA.Update(Me.DS.Tables("table1"))

Me.DS.AcceptChanges()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多