我是靠谱客的博主 从容煎蛋,最近开发中收集的这篇文章主要介绍复选框作为条件动态拼接SQL参数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

工作记录

  • 工作中遇到这样一个需求:
    某个界面上有三个复选框,它们都是查询条件,它们三个分别是生产人员对应值:0,辅助人员对应值:1,特殊工号对应值:-1,这个时候需要使用SQL IN 动态拼接参数,由于经验少,我写的非常复杂, 手动判断了参数是一位还是三位,一位的时候需要去掉尾巴上的",",如果是三位,最后一位是不需要添加上","。

  • 我的实现如下:


//我的实现:
if (chkFzry.Checked || chkScry.Checked || chkTsgh.Checked)
{
string[] str = new string[] { };
List<string> list = str.ToList();
if (chkScry.Checked)
{
list.Add("0");
}
if (chkFzry.Checked)
{
list.Add("1");
}
if (chkTsgh.Checked)
{
list.Add("-1");
}
string strsql = "";
foreach (string i in list)
{
if (list.Count > 1)
{
if (list.Last() == i)
{
strsql += i;
break;
}
else
{
strsql += i + ",";
continue;
}
}
else if (list.Count == 1)
{
strsql = i;
break;
}
}
_sql.AppendLine(" and f_ryfl in (" + strsql.ToStr() + ")");
  • 老码农教我的写法:

//老员工教我的写法
List<string> _lst = new List<string>();
if (chkScry.Checked) _lst.Add("0");
if (chkFzry.Checked) _lst.Add("1");
if (chkTsgh.Checked) _lst.Add("-1");
if (_lst.Count > 0)
_sql.AppendLine(" and f_ryfl in (" + (string.Join(",", _lst.ToArray())) + ")");
  • 码农教我的第二种写法,反向操作,先加再去掉。

//老员工教的第二种写法
string _tmp = "";
if (chkScry.Checked) _tmp = _tmp + ",0";
if (chkFzry.Checked) _tmp = _tmp + ",1";
if (chkTsgh.Checked) _tmp = _tmp + ",-1";
if (_tmp != "")
_sql.AppendLine(" and f_ryfl in (" + _tmp.Trim(',') + ")");

最后

以上就是从容煎蛋为你收集整理的复选框作为条件动态拼接SQL参数的全部内容,希望文章能够帮你解决复选框作为条件动态拼接SQL参数所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部