SQL Server查询中的C#动态参数

时间:2018-04-22 16:56:43

标签: c# sql sql-server

我遇到了SQL Server数据库调用的问题。我有这个table 和一个属性为Groups的对象,类似于"所有nj sk2"。

我在ssms中的查询是

SELECT * 
FROM Hours 
WHERE class_id = 1 
  AND groups IN ('all', 'nj', 'sk2')

在C#中,我正在做这样的事情

var query = "SELECT * FROM Hours WHERE class_id = @class_id AND groups LIKE (@groups)";

using (var cmd = new SqlCommand(query, conn))
{
    cmd.Parameters.AddWithValue("@class_id", User.Current.ClassId);
    cmd.Parameters.AddWithValue("@groups", User.Current.Groups.Replace(" ", ", "));
}

我完成这项工作的唯一方法是

var groups = "('" + User.Current.Groups.Replace(" ", "', '").Remove(User.Current.Groups.Length - 2);
//above is ('all', 'nj', 'sk2')
var query = "SELECT * FROM Hours WHERE class_id = @class_id AND groups LIKE " + groups;

using (var cmd = new SqlCommand(query, conn))
{
    cmd.Parameters.AddWithValue("@class_id", User.Current.ClassId);
}

但这不是一个好的解决方案,所以如果有人知道我做错了什么,请帮助我。感谢

0 个答案:

没有答案