Member 11856456 Ответов: 1

Как я могу создать несколько адаптеров sqldataadapters с помощью строковых имен


Я жду, чтобы создать адаптеры данных с помощью имен таблиц.

вот что у меня есть до сих пор

Dim IDlibrary As DataSet = New DataSet("all_tables")
IDlibrary.Tables.Add("Profile")

'fill datatables in dataset
        For Each tab As DataTable In IDlibrary.Tables
            alltabadaptors.SelectCommand = New SqlCommand("select * from " + tab.TableName, sqlconn1)
            alltabadaptors.SelectCommand.ExecuteNonQuery()
            alltabadaptors.Fill(IDlibrary, tab.TableName)
        Next


это очень хорошо работает при заполнении всех таблиц данных. Однако, поскольку должен быть отдельный адаптер таблицы для каждой таблицы. Как я могу вызвать по строке dataadapter?

так что вместо этого
alltabadaptors.SelectCommand = New SqlCommand("select * from " + tab.TableName, sqlconn1)
есть ли способ вызвать вручную сделанный dataadapter

("stringname for dataadapter here").SelectCommand = New SqlCommand("select * from " + tab.TableName, sqlconn1)


Что я уже пробовал:

Я попытался провести исследование по вызову dataadapter по строковому имени, но не смог найти многого.

Dave Kreskowiak

Первый вопрос: почему вы используете адаптеры таблиц?

Далее, Почему вы загружаете каждую таблицу в своей базе данных в набор данных?

Member 11856456

если есть что-то лучше, чем настольные адаптеры, я хотел бы узнать об этом, чтобы расширить свои знания. Кроме того, я загружаю их все, чтобы найти обновление строки, найденной в моем заявлении о совпадении. Я делаю все возможное, чтобы увеличить скорость моего кода оператора соответствия. Я ценю любую помощь.

1 Ответов

Рейтинг:
10

OriginalGriff

ты не можешь.
Но... Вы можете хранить адаптеры данных в словаре и получать к ним доступ таким образом:

Dim adapters As Dictionary(Of String, SqlDataAdapter) = New Dictionary(Of String, SqlDataAdapter)()
adapters.Add("Customers", New SqlDataAdapter())
adapters.Add("Invoices", New SqlDataAdapter())
...
Dim tableName As String = "Invoices"
adapters(tableName).SelectCommand = New SqlCommand("SELECT * FROM " & tableName, con)


Member 11856456

Грифф, давно не виделись. Спасибо за ответ, это очень интересный способ достичь того, что я ищу. Я действительно ценю помощь, так как я застрял.