我有一个VB解决方案,有十几个表单试图实现发票系统。
我的主要表单(Say Form1)只有一个设计来创建,编辑或删除客户。 如果单击“创建”按钮,将打开我的表单2。在我的表单2中,我有文本框,用户可以在其中输入客户详细信息并单击“保存”。我怀疑在这里......
在表单2中单击此SAVE按钮时,我希望在名为Customer的MSAccess数据库表上发生INSERT命令(我已经创建了...此表目前没有任何记录)。
在我的表单1中,我添加了一个带连接字符串的MSAccess数据库。在我的Form1的代码中,我有这样的代码
Public Class Form1
'Code specific to Form1's elements
End Class
Public Class Connection
Private Shared connection As OleDb.OleDbConnection
Public Shared ReadOnly Property Instance() As OleDb.OleDbConnection
Get
If connection Is Nothing Then
connection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Invoice.mdb")
End If
Return connection
End Get
End Property
End Class
在我的表单2中,我有一些像这样的代码...当点击SAVE时
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myConnection As OleDb.OleDbConnection
myConnection = Connection.Instance
End Sub
我从这个链接获得了这段代码[1]:vb.net - sharing mdb access connection among multiple forms
现在,我不知道在将文本框中的记录插入到Customer表的字段中需要多少代码。有人可以帮忙吗?
答案 0 :(得分:1)
一旦建立连接,就可以正常插入Access表。您没有指定是通过SQL字符串还是通过存储过程进行插入。为简单起见,我的示例使用前者,但是我强烈建议参数化查询(如果您正在执行SQL字符串)或存储过程以防止SQL注入攻击。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim myConnection As OleDb.OleDbConnection = Connection.Instance
myConnection.Open()
Dim sqlString As String = "" ' Put your insert SQL here
Dim myCommand As New OleDbCommand(sqlString, myConnection)
Dim rows As Integer = myCommand.ExecuteNonQuery
Catch ex As Exception
// Handle any errors here
Finally
myConnection.Close()
End Try
End Sub