是否可以在运行时修改tableadapter的SELECT,UPDATE,DELETE和INSERT命令?我想要做的是根据用户在应用程序打开时选择的连接类型(SQL Server或Access)为tableadapter设置命令。
基本上,我希望tableadapter名称保持不变,所以我不必将if语句放在我称之为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和on for SQL Server)的情况下,最好的方法是什么?
非常感谢提前。
答案 0 :(得分:0)
您可以通过更新 query
直接修改 CommandText
:
daTableAdapter.Adapter.UpdateCommand.CommandText = sql_query;
要更新连接字符串,您需要更新 SqlConnection
的 table adapter
:
daTableAdapter.Connection.ConnectionString = myConnectionString;
您还可以使用以下方法专门修改一个命令的 Connection
:
daTableAdapter.Adapter.UpdateCommand.Connection.ConnectionString = myConnectionString;
答案 1 :(得分:-1)
您可以通过设置适配器commands.commandtexts
来更改select insert o update命令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