C#的新手,尝试将数组放入IN()SQL语句中。 换句话说,执行类似以下的查询:
SELECT * FROM table WHERE IN([array_elem_1],[array_elem_2] ...)
在PHP / MySQL中相当容易:
mysql_query('SELECT * FROM table WHERE something IN("' . implode('","', array_map('mysql_real_escape_string', $values)) .'")');
但我最好用C#/ ODBC来表示:
using (OdbcCommand cmd = new OdbcCommand("SELECT * FROM table WHERE something IN (" + String.Join(",", Enumerable.Repeat("?", values.Count)) + ")", conn))
{
foreach (var kvp in values)
{
var param = cmd.CreateParameter();
param.Value = kvp.Key;
cmd.Parameters.Add(param);
}
cmd.ExecuteReader();
}
如果没有这么多代码,是否有更好的方法可以做到这一点? 谢谢!