Winfrom中两个Radiobutton 怎么做条件查询 Winfrom中两个Radiobutton 怎么做条件查询 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Radiobutton 一般使用与多条件的 单选 例如:性别: Radiobutton1 男 Radiobutton2 女 你就判断那个选中然后再你的SQL语句性别这里加上相应的值即可啊。 怎么做,看你这两个东西干嘛的了,也可以是or也可以是and 在DAL里面写按条件查询的方法, 两个Radiobutton 不会做控制, 谁能详细告诉我下。 if(Radiobutton1.checked) { //执行的代码 } else if(Radiobutton2.checked) { //执行的代码 }是不是这样子? 这个我试过 但是貌似好像在DAL里面不可以。 //根据各条件查询 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; } 我不知道你 的这个条件对应的字段 是哪个,我举个例子例如 表 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); 你的DAL业务层跟界面啥关系,判断哪个RadioBttton 被选中是界面层判断的啊。你的DAL层只是接受界面层传入的参数啊,比方你的DAL层方法select(string str_select)你界面只需要根据你的选择的条件,拼接好SQL语句传进去就是啦。我举的是简单的过程例子,只供你参考! 获取值: if(this.rtb1.check){string msg1=this.rtb1.text;}else{string msg1=this.rtb2.text;} 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层里面写就是咯 新手问下WEB的问题!!!! 在线等,,着急!!!!! 使用水晶报表的问题 如何知道应用层使用了那种协议? net_lover(孟子E章) : 继续 40分请教超级简单问题!菜鸟提问 c#中使用msflexgrid遇到的问题 Winform中怎样上传图片啊? 怎样响应“F1”键被按下这个事件? C#winform程序如何判断远程是否有指定的文件存在? 高分求.net启动问题 C#索引器问题························ string和int类型转换问题
例如:性别: Radiobutton1 男 Radiobutton2 女
你就判断那个选中然后再你的SQL语句性别这里加上相应的值即可啊。
if(Radiobutton1.checked)
{
//执行的代码
}
else if(Radiobutton2.checked)
{
//执行的代码
}是不是这样子?
//根据各条件查询
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;
}
有 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);
select(string str_select)
你界面只需要根据你的选择的条件,拼接好SQL语句传进去就是啦。我举的是简单的过程例子,只供你参考!
if(this.rtb1.check){string msg1=this.rtb1.text;}else{string msg1=this.rtb2.text;}
你真猛,一个方法用了这么多参数,不晕哦。。
建议参数多余6个就改用 类传递了,还有你这些字段应该有不少是一个类里面的吧。你直接在界面给这个类赋值,然后拿这个类得属性在DAL层里面写就是咯