C#中checkbox怎么实现多条件查询?

zhuifeideai 2013-06-01 12:21:45
if(CheckBox1.Checked)
{
sql="select"+Checkbox.Text+",";
}
if(CheckBox2.Checked)
{
sql+=Checkbox.Text+",";
}

............
这样怎么不行啊
...全文
332 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
学习
csdnFUCKINGSUCKS 2013-06-14
  • 打赏
  • 举报
回复
直接上代码看吧 里面有注释 我就不多解释了

       private string columns = "";//全局变量columns

        private void button1_Click(object sender, EventArgs e)
        {
            string colTemp = "";//保存已选中的列 以便执行完操作之后不用清空重选 而可以直接追加
            string sql;
            //判断列是否为空 为空则选择所有(当然 可以执行你需要的操作 为空提示选择之类的)
            if (string.IsNullOrEmpty(columns))
                sql = "select * from tablename";
            else
            {
                colTemp = columns;//将已选中项保存
                //截取正确的列格式 这样拼接的结果最后会多一个',' 所有需要截掉 否则sql语句会报错
                columns = columns.Substring(0, columns.LastIndexOf(','));//①
                sql = "select " + columns + " from tablename";//拼接成完整的sql语句 注意空格
            }
            MessageBox.Show(sql);//执行操作 我这里是弹窗 你可以执行对数据库的操作
            columns = colTemp;//还原已选择的列 因为在①处columns的值被截取发生变化 如果不还原继续选择 拼接的语句会出错
        }

        //CheckBox共享此事件
        private void CHKCheckedChanged(object sender, EventArgs e)
        {
            //还原事件源
            CheckBox chk = sender as CheckBox;
            //构造sql中的列名
            string col = chk.Text + ", ";
            //判断选中状态 选中则追加列名 否则移除
            if (chk.Checked)
                columns += col; //全局变量columns 在上面 ↑
            else
                columns = columns.Remove(columns.IndexOf(col), col.Length);
        }
yyada 2013-06-14
  • 打赏
  • 举报
回复
刚刚看了一段不错的代码,楼主可以模仿参考一下 bool flag = false; string strSql = "select * from table "; if (CheckBox1.Checked) { strSql += "where name='" + strName + "' "; flag = true; } if (CheckBox2.Checked) { if (flag) strSql += "and Address like '" + strAddress + "%' "; else { strSql += "where Address like '" + strAddress + "%' "; flag = true; } }
maddemon 2013-06-01
  • 打赏
  • 举报
回复
Request.Form["checkboxName"].Split(',')
jojoova 2013-06-01
  • 打赏
  • 举报
回复
应该先sql=" select " if(CheckBox1.Checked) { sql+=Checkbox.Text+","; } if(CheckBox2.Checked) { sql+=Checkbox.Text+","; }... 感觉是这样,不行调试一下看sql的值什么
zhuifeideai 2013-06-01
  • 打赏
  • 举报
回复
引用 1 楼 lizhi3186575 的回复:
多条件查询不是应该放在Where语句后面的吗?怎么放在select语句后面的
想自由显示选择的列。放在select后有什么办法吗?
人生导师 2013-06-01
  • 打赏
  • 举报
回复
多条件查询不是应该放在Where语句后面的吗?怎么放在select语句后面的

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧