我正在尝试在使用参数从表中进行选择的位置执行动态 sql 选择。
SELECT null FROM @TableName
但是我得到错误必须声明表变量@TableName
。我怀疑这是因为我正在使用变量从表中进行选择。我以前不需要这样做。
List<SqlParameter> sqlParams = new List<SqlParameter>()
{
new SqlParameter("TableName", "testtable"),
new SqlParameter("FieldName", "testfield"),
new SqlParameter("Find", "testfind"),
};
string sqlSelect = "SELECT null FROM @TableName
WHERE @FieldName LIKE '%' + @Find + '%' ";
DataTable dtSelect = SqlHelper.ExecuteDataset(sqlConn, CommandType.Text,
sqlSelect, 30, sqlParams.ToArray()).Tables[0];
//30 = timeout
如何使用动态 sql 执行上述操作? (请不要存储过程)
最佳答案
您不能对表名和列名等使用参数。对于那些你可以有一个可能值的白名单,然后在构建 SQL 查询时使用字符串连接。
关于c# - 如何从表名指定为 SqlParameter 的表中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7565271/