主窗体里显示表的信息有个窗体是控制主窗体显示表的列的不知道CheckBox选中后传递过去该用SQL语句再怎么写了请高人指点下谢谢

解决方案 »

  1.   

    没太看懂,蒙一个
    string strWhere = "select ";
    for(int i = 0; i < 行数; i++)
    {
    if( checkbox.checked )
    {
      strWhere += 列名
    }
    }
      

  2.   


    呵呵,差不多就这个意思了。逐个判断checkbox,选中的就把代表的列加到sql语句的select里面。
      

  3.   

    你在子窗体(选择条件的窗体)加载事件方法里面加入:
    BtnOK.DialogResult = DialogResult.OK;
    BtnCancel.DialogResult = DialogResult.Cancel;
    然后在确定事件里在写:
    void BtnOK_Click(object sender, EventArgs e)
    {
       //用static bool型变量记录checked的条件
       如:
       if(CheckBox.Checked==true)
          记录变量
    }
    在主体窗里面(dataGridView显示列表的界面)弹出子窗体的事件里面加上:子窗体 f=new 子窗体();
    f.ower=this;
    f.ShowDialog();
    if(f.DialogResult == DialogResult.OK)
    {
        String strsql=String.Empty;//记录组合查询条件
         strsql="1=1";//保存后面都可以用and或者or来连接查询条件
        if(子窗体记录的条件变量==true)
         {
             strsql+="(字段名='"+子窗体记录的变量+"')";
         }
         //...后面的都像第一个这样构造查询条件,最后当成sql的where条件查询记录就行了
    }
      

  4.   

    晕,不好意思,搞错了,原来是对列的筛选,不是查询
    不过和我上面意思一样的,也是直接记录check的值,然后把这些值当成要显示的字段查询
    string str=string.empty;
     if(子窗体记录的条件变量==true) 
        { 
           if(str!="")
             strsql+=",字段名"; 
           else
             strsql="字段名";
        } 
    后面的条件也这样构造查询就行了最好把str传给sql语句
    string strsql="select "+str+"from 表名";
    然后将这strsql当成sql语句查询记录重新绑定dataGridView即可