2011-08-06 50 views
0

我有一個試圖實施發票系統的十幾種形式的VB解決方案。VB 2008與多種形式的MsAccess連接

我的主窗體(說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表的字段中。任何人都可以幫忙嗎?

回答

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