我正在尝试使用C#对SQL Server数据库创建参数化查询。
代码:
query = new StringBuilder( "SELECT @fields FROM @tables");
using(SqlConnection connection = new SqlConnection(connection))
{
SqlCommand command = new SqlCommand(query.ToString(), connection);
command.Parameters.AddWithValue("@fields", fields.ToString());
command.Parameters.AddWithValue("@tables", tables.ToString());
try
{
connection.Open();
Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
奇怪的是,这个操作失败,并显示“必须声明表变量“@tables”。但是,正如你所看到的,它已经被定义了。
所以我的问题是:
- 你能传递一个参数来定义FROM语句中的表列表吗?
- 如果可以,为什么这个方法不起作用?