Возможно, наивно я создал класс (AdminDatabase) для обработки соединения с различными файлами базы данных MS-Access (см. Код внизу). Цель этого класса состояла в том, чтобы позволить извлекать данные из базы данных MS-Access и манипулировать данными. Это хорошо работает. Я могу передать экземпляру класса AdminDatabase оператор SQL и заполнить таблицу данных с результатом ( getDataTable метод в разделе code . Теперь я добавил наборы данных в проект, используя Visual Дизайнер данных студии.
Теперь я немного растерялся. Набор классов 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