C#ODBC使用IN()查询中的参数

时间:2011-11-04 00:22:21

标签: c# odbc where-in

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();
}

如果没有这么多代码,是否有更好的方法可以做到这一点? 谢谢!

0 个答案:

没有答案