【问题标题】:Refresh a datagrid in another form以另一种形式刷新数据网格
【发布时间】:2018-03-28 11:19:06
【问题描述】:

我正在使用 VB 来更改数据库中的记录。我有一个名为 tblCustomers 的表。当用户单击 homeForm 上的按钮时,会出现一个名为 FormNewCustomer 的新表单,其中包含供用户输入信息以放入数据库的文本框。提交后,数据确实被插入,但它没有显示在 datagridview 中。

这是我的代码:

Imports System.Data.OleDb
Public Class FormNewCustomer
    Public connstring As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=ProgramDatabase.accdb"
    Public conn As New OleDbConnection(connstring)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub

    Private Sub btnCopy_Click(sender As Object, e As EventArgs) Handles btnCopy.Click
        If txtCustomerName.Text = "" Or txtAC.Text = "" Then
            MsgBox("Enter a Customer Name and a Customer Reference.")
        Else
            conn.Open()
            Dim SqlQuery As String = "INSERT INTO tblCustomers (CustomerName,AC,Address,Phone,Email) VALUES (@CustomerName,@AC,@Address,@Phone,@Email)"
            Dim SqlCommand As New OleDbCommand
            With SqlCommand
                .CommandText = SqlQuery
                .Parameters.AddWithValue("@CustomerName", txtCustomerName.Text)
                .Parameters.AddWithValue("@AC", txtAC.Text)
                .Parameters.AddWithValue("@Address", txtAddress.Text)
                .Parameters.AddWithValue("@Phone", txtPhone.Text)
                .Parameters.AddWithValue("@Email", txtEmail.Text)

                .Connection = conn
                .ExecuteNonQuery()
            End With
            conn.Close()
            MsgBox("Successfully added new Customer.")
            FormHome.DataGridView1.Refresh()
            Me.Close()

        End If
    End Sub
End Class

【问题讨论】:

  • 这不是它的工作原理。如果 2 个表单共享一个数据源,并且您通过该数据源(数据表、数据适配器)添加数据,则新数据将自动显示。此外,您不需要单独的表格 - 您可以将数据直接输入到数据绑定的 DGV 中。请阅读How to Ask 并采取tour
  • 是的,我就是这么设计的。我将其设置为只读,因此用户只能通过表单进行更改。有没有办法仍然可以工作?
  • 请阅读How to Ask 并使用tour。我建议避免您遇到的问题的方法。您还应该使用创建和使用表单实例
  • stackoverflow.com/questions/21299016/…。始终阅读班级成员的文档。您不能只从名称中假设方法的作用。 Refresh() 不刷新数据。它继承自 Control.Refresh,与重绘控件有关。

标签: vb.net ms-access


【解决方案1】:

试试这个代码:

 Dim objDataGridView As YourFormClassName = New YourFormClassName
    objDataGridView.ShowDialog()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    相关资源
    最近更新 更多