【问题标题】:Update Button for Access Database via DataGridView Using OLEDB in VB.NET (Visual Studio 2013)在 VB.NET (Visual Studio 2013) 中使用 OLEDB 通过 DataGridView 更新访问数据库的按钮
【发布时间】:2021-01-14 04:52:12
【问题描述】:

我已将 Access 数据库链接到我的程序。它按预期填充 DataGridView,以便程序的一部分工作。但是,我添加到 DataGridView 的新数据不会显示,我不知道我的代码有什么问题。

任何人都可以看到任何错误或我遗漏的东西会导致代码无法按预期运行吗?提前谢谢你:)

Imports System.Data.OleDb
Public Class Form1
    Dim j As OleDbConnection
    Dim a As OleDbDataAdapter
    Dim s As DataSet
    Dim lokasidb As String
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Call jaringan()
        a = New OleDbDataAdapter("Select * From datadairy", j)
        s = New DataSet
        s.Clear()
        a.Fill(s, "datadairy")
        DataGridDairy.DataSource = (s.Tables("datadairy"))
    End Sub

    Private Sub eksekusiSql(ByVal Sql As String)
        Dim objcmd As New System.Data.OleDb.OleDbCommand
        Call jaringan()
        Try
            objcmd.Connection = j
            objcmd.CommandType = CommandType.Text
            objcmd.CommandText = Sql
            objcmd.ExecuteNonQuery()
            objcmd.Dispose()
            MsgBox("The new data successfully saved", vbInformation)
        Catch ex As Exception
            MsgBox("The new data is failed to save", vbInformation)
        End Try
    End Sub

    Sub jaringan()
        lokasidb = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\19106060045_Tugas Modul 5.accdb"
        j = New OleDbConnection(lokasidb)
        If j.State = ConnectionState.Closed Then j.Open()
    End Sub

    Private Sub ButtonAdd_Click(sender As Object, e As EventArgs) Handles ButtonAdd.Click
        Dim No As String = TextNo.Text
        Dim Jenis_Susu_Sapi As String = TextSusu.Text
        Dim Jenis_Olahan As String = TextOlahan.Text
        Dim Harga_per_kg As String = TextHarga.Text
        Dim Tempat_Penjualan As String = TextPasar.Text
        Dim Sql_Simpan_Dairy As String = "Insert into datadairy (No, Jenis_Susu_Sapi, Jenis_Olahan, Harga_per_kg, Tempat_Penjualan) values (" + No + ",'" + Jenis_Susu_Sapi + "','" + Jenis_Olahan + "','" + Harga_per_kg + "','" + Tempat_Penjualan + "')"

        eksekusiSql(Sql_Simpan_Dairy)
        ShowDairydata()
    End Sub

    Public Sub ShowDairydata()
        Call jaringan()
        a = New OleDbDataAdapter("Select * from datadairy", j)
        s = New DataSet
        s.Clear()
        a.Fill(s, "datadairy")
        DataGridDairy.DataSource = (s.Tables("datadairy"))
    End Sub

【问题讨论】:

  • 如果您使用数据适配器填充DataTable 来显示数据,那么您不应该调用ExecuteNonQuery 来保存数据。您应该更改DataTable 中的数据,添加新行、编辑现有行和删除现有行,然后通过在同一数据适配器上调用Update 将这些更改保存回数据库。
  • 这对你有很大的帮助,但请你写代码让我更改objcmd.ExecuteNonQuery好吗? @jmcilhinney
  • 您应该先对该主题进行一些研究,然后在遇到特定问题时寻求帮助。
  • 好的,非常感谢! @jmcilhinney

标签: vb.net ms-access oledb


【解决方案1】:

将新数据添加到数据库后,只需使用

'DataGridDairy.Databind()'

刷新。

【讨论】:

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