【发布时间】:2013-05-26 09:19:09
【问题描述】:
显然,以下代码没有按预期打印任何内容。我确信这与我试图将项目列表放入@namelist 的事实有关。显然,它不仅仅是文本替换。
我该如何解决这个问题?谢谢
using (var connection = new SqlConnection(_connectionString))
{
connection.Open();
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = @"select column_name, table_name from information_schema.columns where table_name in (@namelist)";
cmd.Parameters.AddWithValue("@namelist", "'tableOne', 'tableTwo'");
var reader = cmd.ExecuteReader();
while (reader.Read())
{
var a = reader[0];
Console.WriteLine(a);
}
}
}
【问题讨论】:
-
嗯,你没有对
@namelist做任何事情? -
您是否尝试过 @namelist 而不是 addWithValue 中的“TradeName”
-
我的个人解决方案is this one 答案包括将
IEnumerable<string>转换为IEnumerable<SqlDataRecord>的扩展方法 -
从某人那里听说,如果允许的话,可能会出现安全问题。是 sql server 不允许这样做,而不是在 dotnet 层上。有人在这方面有 cmets 吗?
标签: c# sql sql-server