概述
string sql = @"select *
from UserInfo u inner join Department dept on u.DeptID=dept.DeptID where UserID like'%'+@UserID+'%'";
if (!string.IsNullOrEmpty(DeptIDs))
{
sql += " and u.DeptID in(" + DeptIDs + ")";
}
SqlParameter[] sp = {
new SqlParameter("@UserID",UserID),
};
这是SQL语句拼接,直接用SqlParameter会加两个单引号
所以在用in的时候就用语句拼接了,如何用SQL语句解决这个问题,目前我还不知道
但是可以使用拉姆达表达式来进行过滤
//添加内容
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name"));
dt.Columns.Add(new DataColumn("Pwd"));
dt.Rows.Add("1", "123");
dt.Rows.Add("4", "123");
IList<User> u = ModelHelper<User>.DataTableToModel(dt);
//添加条件
List<string> ls = new List<string>();
ls.Add("1");
ls.Add("2");
ls.Add("3");
//遍历过滤之后的内容 u.Where(p => ls.Contains(p.Name)).ToList()就是条件
foreach (var item in u.Where(p => ls.Contains(p.Name)).ToList())
{
Console.WriteLine(item.Name + " " + item.Pwd);
}
首先将DataTable转换成实体类,通过ModelHelper类可进行快速转换,ModelHelper代码来源于网上,下面会贴出来
User类是随便写的一个实体类
注释都打好了,类型自己更换就好
User类
public class User
{
private string name;
private string pwd;
public string Name { get => name; set => name = value; }
public string Pwd { get => pwd; set => pwd = value; }
}
ModelHelper类
public class ModelHelper<T> where T : new() // 此处一定要加上new()
{
public static IList<T> DataTableToModel(DataTable dt)
{
IList<T> list = new List<T>();// 定义集合
Type type = typeof(T); // 获得此模型的类型
string tempName = "";
foreach (DataRow dr in dt.Rows)
{
T t = new T();
PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性
foreach (PropertyInfo pro in propertys)
{
tempName = pro.Name;
if (dt.Columns.Contains(tempName))
{
if (!pro.CanWrite) continue;
object value = dr[tempName];
if (value != DBNull.Value)
pro.SetValue(t, value, null);
}
}
list.Add(t);
}
return list;
}
}
我的博客地址:Wy博客
最后
以上就是舒服皮卡丘为你收集整理的SQL复选框条件查询的全部内容,希望文章能够帮你解决SQL复选框条件查询所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复