现在有4个textbox 根据他们的值进行查询,该怎么处理
现在有4个textbox 根据他们的值进行查询
有上面4个txtbox 用户不一定输入哪个···
然后进行查询···
该怎么做比较好啊???
------解决方案--------------------
select * from table where userid = this.edtUserID.Text or Name = this.edtName.Text
or policeNumber = this.edtPoliceNumber.Text or department = this.edtDepartment.Text
------解决方案--------------------
string strSql="select * from table where 1=1";
if(edtUserID.Text!="")
{
strSql+=" and userid='"+edtUserID.Text+'";
}
其他依此類推
------解决方案--------------------
你给你的参数都设置一个默认值
假设默认值是-1
可以像这么写(条件=-1 or 条件=用户输入条件)and 后面的差不多的
------解决方案--------------------
判断是否为空,查询不为空的
如果是多个查询,那就联合查询
------解决方案--------------------
就这个方法比较好,一般多项查询都是这样做的
------解决方案--------------------
- C# code
用户名<asp:TextBox ID="edtUserID" runat="server"></asp:TextBox> 姓名<asp:TextBox ID="edtName" runat="server"></asp:TextBox> 警号<asp:TextBox ID="edtPoliceNumber" runat="server"></asp:TextBox> 部门<asp:TextBox ID="edtDepartment" runat="server"></asp:TextBox>
有上面4个txtbox 用户不一定输入哪个···
然后进行查询···
该怎么做比较好啊???
------解决方案--------------------
select * from table where userid = this.edtUserID.Text or Name = this.edtName.Text
or policeNumber = this.edtPoliceNumber.Text or department = this.edtDepartment.Text
------解决方案--------------------
string strSql="select * from table where 1=1";
if(edtUserID.Text!="")
{
strSql+=" and userid='"+edtUserID.Text+'";
}
其他依此類推
------解决方案--------------------
你给你的参数都设置一个默认值
假设默认值是-1
可以像这么写(条件=-1 or 条件=用户输入条件)and 后面的差不多的
------解决方案--------------------
判断是否为空,查询不为空的
如果是多个查询,那就联合查询
------解决方案--------------------
就这个方法比较好,一般多项查询都是这样做的
------解决方案--------------------
- C# code
string strSql="select * from table where 1=1"; strSql+=string.IsNullOrEmpty(edtUserID.Text.Trim())?"":" and userid='"+edtUserID.Text.Trim()+"'"; strSql+=string.IsNullOrEmpty(edtName.Text.Trim())?"":" and username='"+edtName.Text.Trim()+"'"; strSql+=string.IsNullOrEmpty(edtPoliceNumber.Text.Trim())?"":" and useredtPoliceNumber='"+edtedtPoliceNumber.Text.Trim()+"'"; strSql+=string.IsNullOrEmpty(edtDepartment.Text.Trim())?"":" and userdepartment='"+edtDepartment.Text.Trim()+"'";
------解决方案--------------------
引用:
select * from table where userid = this.edtUserID.Text or Name = this.edtName.Text
or policeNumber = this.edtPoliceNumber.Text or department = this.edtDepartment.Text
这是个好办法 ·· 我怎么没想到呢···
呵呵···
這個方法查出來的是會有問題的
------解决方案--------------------
string sql = "select top 10 * from tablename where 1=1";
If(txtBox1.Text.Length > 0)
{
sql+= " AND field1='" + txtBox1.Text + "'";
}
.......
If(txtBox4.Text.Length > 0)
{
sql+= " AND field2='" + txtBox4.Text + "'";
}
------解决方案--------------------
保证后面查询条件都为空时能照样查询
------解决方案--------------------
一楼的答案是一个。你也可以自己编写一个判断程序了进行判断啊哪些TextBox中有数据哪些没有。
------解决方案--------------------
7楼的方法可行!
------解决方案--------------------
写个proc
将四个文本框中的值作为参数传入
create proc procname
@用户名 nvarchar(20)
@姓名 nvarchar(20)
@警号 nvarchar(20)
@部门 nvarchar(20)
as
select
...
from
...
where
(@用户名='' or 用户名=@用户名)