也许是天真的,我创建了一个类(admindatabase)来处理与不同MS Access数据库文件的连接(参见底部的代码)。该类的目的是允许从MS Access数据库中检索数据并操作数据。这很管用。我可以向AdminDatabase类的一个实例提供一条SQL语句,并用结果填充一个数据表。(
获取数据
方法在
代码
部分。现在,我已经使用Visual Studio的数据设计器向项目添加了数据集。
现在我有点困惑。一旦用户选择了相关的数据文件,admindatabase类集就是连接字符串。由于新的数据集也使用相同的设置,因此连接的my.settings.adminconnectionString会带来以下问题:
-
在实例化了一个admindatabase对象之后,我可以假定我使用数据设计器创建的数据集将连接到用户在运行时选择的MS Access数据库文件吗?
-
我应该在连接类中编写方法来访问用数据设计器创建的数据集中的数据,还是直接访问数据集可以?我想我可以在某个地方有一个方法来设置项目中的连接字符串设置。
-
我还能怎么处理?
代码
public class AdminDatabase
' stores the connection string which is set in the New() method
dim strAdminConnection as string
public sub New()
...
adminName = dlgopen.FileName
conAdminDB = New OleDbConnection
conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _
"Provider=Microsoft.ACE.OLEDB.12.0"
' store the connection string in strAdminConnection
strAdminConnection = conAdminDB.ConnectionString.ToString()
My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection)
...
End Sub
' retrieves data from the database
Public Function getDataTable(ByVal sqlStatement As String) As DataTable
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New OleDbDataAdapter
Dim localCon As New OleDbConnection
localCon.ConnectionString = strAdminConnection
Using localCon
Dim command As OleDbCommand = localCon.CreateCommand()
command.CommandText = sqlStatement
localCon.Open()
da.SelectCommand = command
da.Fill(dt)
getDataTable = dt
End Using
End Function
End Class