0
我正在使用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中。请阅读[问]并参加[游览] – Plutonix
是的,这就是我设计它的原因。我将它设置为只读,以便用户只能通过表单更改它。有没有办法可以继续工作? – Joepowell567
请阅读[问]并参加[旅游]。我建议的方法*避免*你遇到的问题。您还应该使用创建并使用表单实例 – Plutonix