0

我有一个 .NET 应用程序,其中的一些方法会更新 Access 数据库表。

我的问题是DataGridView显示数据的控件没有更新。
为此,我必须重新启动应用程序,这不是我想要的。

Public Class frmUsers

    Dim cnn3 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
    Dim sql2 As String
    Dim ds1 As New DataSet
    Dim adptr As OleDbDataAdapter

    Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

        Dim Command1 As New OleDbCommand
        Dim i2 As Integer
        Dim sql1 As String
        Dim Status As String

        Try
            Dim cnn3 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
            cnn3.Open()

            If ComboBox1.SelectedValue = "Admin" Then
                Status = "Admin"
            Else
                Status = "Student"
            End If

            sql1 = "INSERT INTO Users ([ID],[PASSWORD],[LASTNAME],[FIRSTNAME],[LOGINTYPE]) VALUES('" & txtUID.Text & "','" & txtUPassword.Text & "','" & txtULastname.Text & "','" & txtUFirstName.Text & "','" & Status & "')"

            Command1 = New OleDbCommand(sql1, cnn3)
            i2 = Command1.ExecuteNonQuery
            MessageBox.Show("Users Added Successfull")

            Catch ex As Exception

        End Try

    End Sub


    Private Sub btnback_Click(sender As Object, e As EventArgs) Handles btnback.Click

        Me.Hide()
        frmFaculty.Show()

    End Sub


    Private Sub frmUsers_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim cnn4 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
        sql2 = "Select * from Users"

        Try
            cnn4.Open()
            adptr = New OleDbDataAdapter(sql2, cnn4)
            adptr.Fill(ds1)
            DataGridView1.DataSource = ds1.Tables(0)

        Catch ex As Exception

        End Try

        cnn4.Close()

    End Sub

End Class
4

1 回答 1

0

您需要手动更新它。尝试这个:

Dim cnn3 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
Dim sql2 As String

Dim ds1 As New DataSet
Dim adptr As OleDbDataAdapter

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
    Dim Command1 As New OleDbCommand

    Dim i2 As Integer
    Dim sql1 As String
    Dim Status As String

    Try
        Dim cnn3 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
        cnn3.Open()
        If ComboBox1.SelectedValue = "Admin" Then
            Status = "Admin"
        Else
            Status = "Student"
        End If
        sql1 = "INSERT INTO Users ([ID],[PASSWORD],[LASTNAME],[FIRSTNAME],[LOGINTYPE]) VALUES('" & txtUID.Text & "','" & txtUPassword.Text & "','" & txtULastname.Text & "','" & txtUFirstName.Text & "','" & Status & "')"
        Command1 = New OleDbCommand(sql1, cnn3)
        i2 = Command1.ExecuteNonQuery
        MessageBox.Show("Users Added Successfull")

        Refresh()



    Catch ex As Exception
    End Try

End Sub

Private Sub btnback_Click(sender As Object, e As EventArgs) Handles btnback.Click
    Me.Hide()
    frmFaculty.Show()
End Sub


Private Sub frmUsers_Load(sender As Object, e As EventArgs) Handles MyBase.Load

   Refresh()
End Sub

Private Sub Refresh()
 Dim cnn4 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
    sql2 = "Select * from Users"
    Try
        cnn4.Open()
        adptr = New OleDbDataAdapter(sql2, cnn4)
        adptr.Fill(ds1)
        DataGridView1.DataSource = ds1.Tables(0)
    Catch ex As Exception

    End Try

    cnn4.Close()
End Sub
于 2013-10-09T17:00:31.260 回答