2010-09-07 82 views
1

我開始在數據庫中放入我的應用程序,但是我在如何在我的一打或幾個不同的表單之間共享數據庫連接時留下了空白MDI應用程序。我假設這與接口或某事有關,但我無法在任何地方找到任何相關示例。有人可以幫我嗎?理想情況下,我想要的是,當應用程序加載時,在表單加載區域中調用一個函數,該函數建立到mdb的單個連接,然後我可以通過任何形式調用,所以我並不總是必須每次我需要更新數據庫時,打開/關閉連接(假設我建議更適合開銷),除非這是更好的選擇?vb.net - 在多個表單之間共享mdb訪問連接

這裏的MDB數據庫訪問代碼的一個基本的例子我有工作:

Dim dt As DataTable = New DataTable() 
    Dim OleDbTran As OleDbTransaction = Nothing 

    Using connJET As OleDbConnection = New OleDbConnection("connection string here...") 
     Try 
      connJET.Open() 
      Dim sqlCount As OleDbCommand = New OleDbCommand("select * from mytable", connJET) 
      Using aReader As OleDbDataReader = sqlCount.ExecuteReader() 
       dt.Load(aReader) 
      End Using 

      If (dt.Rows.Count > 0) Then 
       MsgBox(dt.Rows.Count) 
      End If 

      OleDbTran = connJET.BeginTransaction() 
      Dim aCommand As OleDbCommand = connJET.CreateCommand() 
      aCommand.CommandText = "INSERT INTO Programs (title) VALUES (@title)" 
      aCommand.Transaction = OleDbTran 

      aCommand.Parameters.Add("@title", OleDbType.VarChar) 
      aCommand.Parameters("@title").Value = "Test" 

      aCommand.ExecuteNonQuery() 
      OleDbTran.Commit() 
     Catch ex As Exception 
      MessageBox.Show(ex.Message) 
     End Try 
    End Using 

回答

1

假設你創建你的啓動形式的連接,那麼你可以只添加構造函數的其他形式接受一個SqlConnection並在你創建該表單的實例時發送它。

或者,如果你願意,你創造的東西是這樣的:

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("connstring") 
      End If 
      Return connection 
     End Get 
    End Property 
End Class 

然後就可以通過打電話只是Connection.Instance當您需要它訪問它。

+0

這解決了我的問題,謝謝! – Joe 2010-09-07 11:23:55

相關問題