Изменить команды TableAdapter во время выполнения - PullRequest
1 голос
/ 28 марта 2012

Можно ли изменить команды SELECT, UPDATE, DELETE и INSERT для адаптера таблицы во время выполнения? Что я хочу сделать, это установить команды для табличного адаптера на основе типа соединения (SQL Server или Access), который пользователь выбирает при открытии приложения.

По сути, я хочу, чтобы имена табличных адаптеров оставались неизменными, поэтому мне не нужно помещать операторы везде, где я вызываю tableadapter.fill или .update. Вместо этого я хочу поместить оператор if после выбора строки подключения и изменить команды SELECT, UPDATE, DELETE и INSERT в зависимости от того, что выбрал пользователь. Что-то вроде ниже

If ConnectionString  = Access Then
    tableadapter.selectcommand="SELECT...FROM AccessDbase"
Else
    tableadapter.selectcommand="SELECT...FROM SQLDbase"
End if 

Каков наилучший способ сделать это без необходимости создания двух отдельных приложений (одно для подключения к Access и для SQL Server)?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 28 марта 2012

Вы можете изменить команду выбора вставки или обновления, установив адаптеры command.commandtexts

If ConnectionString = Access Then
    tableadapter.SelectCommand.CommandText = "SELECT...FROM AccessDbase"
    tableadapter.InsertCommand.CommandText = "INSERT INTO AccessDbase..."
    tableadapter.UpdateCommand.CommandText = "UPDATE AccessDbase SET ..."
    tableadapter.DeleteCommand.CommandText = "DELETE FROM AccessDbase WHERE ..."
Else
    tableadapter.SelectCommand.CommandText = "SELECT...FROM SQLDbase"
    tableadapter.InsertCommand.CommandText = "INSERT INTO SQLDbase..."
    tableadapter.UpdateCommand.CommandText = "UPDATE SQLDbase SET ..."
    tableadapter.DeleteCommand.CommandText = "DELETE FROM SQLDbase WHERE ..."
End if
...