Winfrom中两个Radiobutton 怎么做条件查询

解决方案 »

  1.   

    Radiobutton 一般使用与多条件的 单选  
    例如:性别: Radiobutton1 男  Radiobutton2 女 
    你就判断那个选中然后再你的SQL语句性别这里加上相应的值即可啊。
      

  2.   

    怎么做,看你这两个东西干嘛的了,也可以是or也可以是and
      

  3.   

    在DAL里面写按条件查询的方法, 两个Radiobutton 不会做控制, 谁能详细告诉我下。
      

  4.   


     if(Radiobutton1.checked)
     {
      //执行的代码
     }
     else if(Radiobutton2.checked)
     {
      //执行的代码
     }是不是这样子?
      

  5.   

                    这个我试过  但是貌似好像在DAL里面不可以。
      

  6.   


            //根据各条件查询
            public static DataSet GetListByAll(string IStranrec, string starcreatetime, string endcreatetime, string HLcode, string trancode, string sender, string reciever, string destAddr, string name, string copys, string state)
            {
                Database db = DatabaseFactory.CreateDatabase();
                StringBuilder str = new StringBuilder();
                str.Append(string.Format(str_HL_Noticemanage_select, " where 1=1 "));
                ////当前网点
                //if (!string.IsNullOrEmpty(webname))
                //{
                //    str.Append("AND  Noticemanage_webcode ='" + webname + "'");
                //}
                //出发运单0  到达运单1
                if(radioButton1)         
                //托运(创建)日期
                if (!string.IsNullOrEmpty(starcreatetime) && string.IsNullOrEmpty(endcreatetime))
                {
                    str.Append("AND Tranrec_createtime between'" + starcreatetime + "'" + "and'" + DateTime.Parse(starcreatetime).AddDays(5).ToString("yyyy-MM-dd 23:59:59") + "'");
                }
                if (!string.IsNullOrEmpty(starcreatetime) && !string.IsNullOrEmpty(endcreatetime))
                {
                    str.Append("AND Tranrec_createtime between'" + starcreatetime + "'and '" + endcreatetime + "'");
                }
                if (string.IsNullOrEmpty(starcreatetime) && !string.IsNullOrEmpty(endcreatetime))
                {
                    str.Append("AND Tranrec_createtime between'" + DateTime.Parse(endcreatetime).AddDays(-5).ToString("yyyy-MM-dd 00:00:00") + "'and '" + endcreatetime + "'");
                }
                //联合货号
                if (!string.IsNullOrEmpty(HLcode))
                {
                    str.Append("AND  Noticemanage_HLcode ='" + HLcode + "'");
                }
                //托运单号Tranrec_trancode
                if (!string.IsNullOrEmpty(trancode))
                {
                    str.Append("AND  Tranrec_trancode ='" + trancode + "'");
                }
                //发货人
                if(!string .IsNullOrEmpty (sender))
                {
                    str.Append ("AND  Tranrec_sender ='" + sender + "'");            
                }
                //收货人
                if (!string.IsNullOrEmpty(reciever))
                {
                    str.Append("AND  Tranrec_reciever ='" + reciever + "'");
                }
                //目的地
                if (!string.IsNullOrEmpty(destAddr))
                {
                    str.Append("AND  Tranrec_destAddr ='" + destAddr + "'");
                }
                //货物名称
                if (!string.IsNullOrEmpty(name))
                {
                    str.Append("AND  Caculategood_name ='" + name + "'");
                }
                //件数
                if (!string.IsNullOrEmpty(copys))
                {
                    str.Append("AND  Caculategood_copys ='" + copys + "'");
                }
                //状态
                if (!string.IsNullOrEmpty(state))
                {
                    str.Append("AND  Tranrec_state ='" + state + "'");
                }
                ////公司编号
                //if (!string.IsNullOrEmpty(compcode))
                //    str.Append("and  Noticemanage_Compcode ='" + compcode + "'");
                DbCommand dbcommand = db.GetSqlStringCommand(str.ToString());
                DataSet dt = new DataSet();
                dt = db.ExecuteDataSet(dbcommand);
                return dt;
            }
      

  7.   

    我不知道你 的这个条件对应的字段 是哪个,我举个例子例如 表 student 
    有 ID (编号),NAME(姓名),SEX (性别),CALSS1(班级) 等在界面做查询的时候应该这样界面 有 两个条件吧,一个是编号 ,textBox,性别radioButton1 //查询方法
    public static DataSet GetListByAll(sting sqlWhere )
    {
        string strSql ="select ID,NAME,SEX,CLASS1 FROM student "
        if(!sqlWhere.Equals(""))
        {
          strSql +=" where " + sqlWhere ;
        }............
    }
    界面上来组织查询条件  当点了 查询时 ,
    string strWhere = "" ;
    if(!txtID.Text.Equals(""))
    {
      strWhere += "ID ='" + txtID.Text+"' ";
    }
    if(radioButton1.Checked)
    {
      if(strWhere.Equals("")))
      {
         strWhere +=" ID ='1' "
      }
      else
      { 
       strWhere +=" and ID ='1' "
       } 
    }
    else if(radioButton2.Checked)
    {
      if(strWhere.Equals("")))
      {
         strWhere +=" ID ='0' "
      }
      else
      { 
       strWhere +=" and ID ='0' "
       } 
    }Data ds = GetListByAll(strWhere);
      

  8.   

    你的DAL业务层跟界面啥关系,判断哪个RadioBttton 被选中是界面层判断的啊。你的DAL层只是接受界面层传入的参数啊,比方你的DAL层方法
    select(string str_select)
    你界面只需要根据你的选择的条件,拼接好SQL语句传进去就是啦。我举的是简单的过程例子,只供你参考!
      

  9.   

    获取值:
      
    if(this.rtb1.check){string msg1=this.rtb1.text;}else{string msg1=this.rtb2.text;}
      

  10.   

    public static DataSet GetListByAll(string IStranrec, string starcreatetime, string endcreatetime, string HLcode, string trancode, string sender, string reciever, string destAddr, string name, string copys, string state) 
    你真猛,一个方法用了这么多参数,不晕哦。。
    建议参数多余6个就改用 类传递了,还有你这些字段应该有不少是一个类里面的吧。你直接在界面给这个类赋值,然后拿这个类得属性在DAL层里面写就是咯