【发布时间】:2017-02-21 04:50:41
【问题描述】:
更新:由于原始问题基本上已得到回答,因此我已将其标记为完成。
我有一个 C# 项目,我想在其中查询数据库。 SQL 查询将从表中选择,在 WHERE 子句中,我想从 C# 中指定的预定义值列表中过滤结果。
List<string> productNames = new List<string >() { "A", "B", "C" };
foreach (name in productNames)
{
string query = @"
SELECT *
FROM products
WHERE name IN (@name);";
// Execute query
MySqlCommand cmd = new MySqlCommand(query, dbConn);
cmd.Parameters.AddWithValue("name", name);
MySqlDataReader row = cmd.ExecuteReader();
while (row.Read())
{
// Process result
// ...
}
}
但是我遇到了一个错误:
已经有一个打开的 DataReader 与此 Connection 关联 必须先关闭
那么就不能使用for 循环以这种方式将参数添加到 SELECT 语句吗?
【问题讨论】: