我是靠谱客的博主 舒服皮卡丘,最近开发中收集的这篇文章主要介绍SQL复选框条件查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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复选框条件查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部