我在使用C#中的OdbcConnection對odbc驅動程序執行參數化sql查詢時遇到問題。所以我想它免受注射OdbcCommand。使用表名進行參數化
using (OdbcCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT ? FROM ?";
command.CommandTimeout = SynchTimeout;
command.CommandType = CommandType.Text;
command.Parameters.Add(new OdbcParameter(string.Empty, "User"));
command.Parameters.Add(new OdbcParameter(string.Empty, "TableName"));
OdbcDataReader reader = command.ExecuteReader();
while (reader.Read())
{
// TODO: Do something clever..
}
}
使用odcparameters爲columname「用戶」似乎確定 列名和表名將會從Web GUI配置。但如果我添加表名作爲參數與佔位符'?' 我收到以下錯誤: 錯誤[HY000] [Microsoft] [ODBC Excel驅動程序]參數'Pa_RaM002'指定需要表名稱的位置。
有沒有人知道如何傳遞一個表名安全在這種情況下,如果它不能是一個OdbcParameter?
Jet/ACE驅動程序不能有表參數。 – Fionnuala