我开始在我的应用程序中放入一个数据库,但是我在如何在我的MDI应用程序中的十几个不同表单之间共享数据库连接上画了一个空白。我假设这与接口或其他东西有关,但我无法在任何地方找到任何相关的例子。有人可以帮我吗?理想情况下我想要的是当应用程序加载时,在表单加载区域中调用一个函数,该函数建立与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
答案 0 :(得分: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
即可访问它。