注册 登录
编程论坛 ASP.NET技术论坛

select下拉框绑定了数据源,还想在其中显示空,就是这个条件可以不选,怎么办啊?

sunfly813 发布于 2007-08-01 11:10, 3059 次点击
rt
我的意思是,在做查询,因为有多个查询条件,不可能每个都必须选择一个数据,所以就想当某个条件不选择时就查询出所有的记录
10 回复
#2
606liutong2007-08-01 11:25


你的意思是不是有好多查询条件

但是你有时候只会选择其中的某个条件来查询

达到查询出你所想要的条件的查询结果啊???

#3
sunfly8132007-08-01 11:26
回复:(606liutong)你的意思是不是有好多查询条件 ...
嗯,对对,就这个意思,应该怎么办啊?
嘿嘿,表达了半天都没说太明白~
#4
冰彩虹2007-08-01 11:34

做个判断就行了吧

StringBuilder sb = new StringBuilder();
sb.Append(" 1=1 ");
if (txtdeviceContractNo.Text.Trim().ToString() != string.Empty)
{
sb.Append(" and ContractNoSys like '%" + txtdeviceContractNo.Text.Trim().ToString() + "%' ");
}
if (txtprojectNo.Value.Trim().ToString() != string.Empty)
{
sb.Append(" and ProjectNo like '%" + txtprojectNo.Value.Trim().ToString() + "%'");
}
if (ddlcontractStatus.SelectedValue.Trim().ToString() != string.Empty && ddlcontractStatus.SelectedValue != "请选择")
{
sb.Append(" and ContractStatusCode='" + ddlcontractStatus.Text.Trim().ToString() + "'");
}
//sb.ToString()就是你想要的查询条件

#5
606liutong2007-08-01 11:35

[IMG]F:\1112.jpg[/IMG]
看看我的查询条件

代码如下:

string sqlstr = "select ID,NAME,AGE,JERQUEDATE,HOSPITAL,CLINIC,JC_DOCTOR,MACHINE,MIRRORIMAGE,DIAGNOSES,PATHOLOGY,SALARY from patientMsg where 1=1";

if(this.txtName.Text !="")
{
sqlstr += "and";
sqlstr += " NAME like '" + this.txtName.Text + "%'";
}
if (this.DropHospital.SelectedItem.Text != "----请选择----")
{
sqlstr += "and";
sqlstr += " HOSPITAl='"+this.DropHospital.SelectedItem.Text+"'";
}
if (this.DropClinic.SelectedItem.Text != "----请选择----")
{
sqlstr += "and";
sqlstr += " CLINIC='" + this.DropClinic.SelectedItem.Text + "'";
}
if (this.DropJcDoctor.SelectedItem.Text != "----请选择----")
{
sqlstr += "and";
sqlstr += " JC_DOCTOR ='" + this.DropJcDoctor.SelectedItem.Text + "'";
}
if (this.DropSjDoctor.SelectedItem.Text != "----请选择----")
{
sqlstr += "and";
sqlstr += " SJ_DOCTOR ='" + this.DropSjDoctor.SelectedItem.Text + "'";
}
if (this.DropMachine.SelectedItem.Text != "----请选择----")
{
sqlstr += "and";
sqlstr += " MACHINE ='" + this.DropMachine.SelectedItem.Text + "'";
}
if (this.txtStarDate.Text != "" && this.txtEndDate.Text != "")
{
sqlstr += "and";
sqlstr += " JERQUEDATE between '" + this.txtStarDate.Text + "' and '" + this.txtEndDate.Text + "'";
}
else if (this.txtStarDate.Text != "" && this.txtEndDate.Text == "")
{
sqlstr += "and";
sqlstr += " JERQUEDATE between '" + this.txtStarDate.Text + "' and '" + DateTime.Today.ToShortDateString() + "'";
}
else if (this.txtStarDate.Text == "" && this.txtEndDate.Text != "")
{
sqlstr += "and";
sqlstr += " JERQUEDATE < '" + this.txtEndDate.Text + "'";
}
if (this.DropAge.SelectedItem.Text != "全部")
{
sqlstr += "and";
sqlstr += " AGE" + this.DropAge.SelectedItem.Text + " " + this.txtAge.Text + "";
}

SqlConnection conn =new SqlConnection(str);
conn.Open();
SqlDataAdapter ada = new SqlDataAdapter(sqlstr, conn);
DataSet set = new DataSet();
ada.Fill(set);
if (set.Tables[0].Rows.Count>0)
{
this.GridView1.DataSource = set;
this.GridView1.DataBind();
}
else
{
Response.Write("<script>alert('对不起,没有找到你所查询的病人资料!')</script>");
}
conn.Close();


你的也是如此,一样的道理

#6
606liutong2007-08-01 11:37
汗。。。看错了

怎么会用select下拉框啊

大家一起鄙视我吧
#7
cyyu_ryh2007-08-01 11:45
这是基本的查询
#8
sunfly8132007-08-01 12:17
回复:(606liutong)[IMG]F:\\1112.jpg[/IMG]看看我的...
可能还是我的表达不清楚~
先谢谢各位~
我的意思是 现在我的select绑定了数据源之后,下拉里边就只有数据库里的数据了,并没有 如“—请选择—”这样的可选项,就是说没有办法让这个条件为空,怎么添加“—请选择—”这一项到select下拉列表里啊?可能是我的这个问题太简单了...刚接触.net不久,望见谅!
#9
冰彩虹2007-08-01 12:47
ddlcontractType.Items.Insert("请选择", "请选择");
#10
cyyu_ryh2007-08-01 13:01
ddlcontractType.Items.Insert("请选择", "0");
我觉得这样比较好
#11
sunfly8132007-08-01 13:01
回复:(冰彩虹)ddlcontractType.Items.Insert(
呵呵,谢谢你~终于解决了,不过第一个参数好像应该是int型,而不应该是字符串~
1