做了个按条件查询,输入条件可以查询出结果,但是把条件清空了,在查询应该是全部查询了,可还是按之前那个条件查的结果,想问下按条件查完,怎么在全部查,下面是我的代码if (ddlist.SelectedValue != "")
{
sSql = " p_product = '" + this.ddlist.SelectedValue + "'";
} if (txtname.Text.Trim() != "")
{
sSql = " p_name like '%" + txtname.Text.Trim() + "%'";
} if (this.txtStart.Text.Trim() != "")
{
if (this.txtEnd.Text.Trim() != "")
{
sSql = " (convert(varchar(32),addtime,120) >= '" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "' and convert(varchar(32),addtime,120)<='" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "')";
}
else
{
sSql = " convert(varchar(32),addtime,120) like '%" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "%'";
}
}
else
{
if (this.txtEnd.Text.Trim() != "")
{
sSql = " convert(varchar(32),addtime,120) like '%" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "%'";
}
} if (ddlist.SelectedValue != "" && txtname.Text.Trim() != "" && txtStart.Text.Trim() != "" && txtEnd.Text.Trim() != "")
{
sSql = " p_product = '" + this.ddlist.SelectedValue + "' and p_name like '%" + txtname.Text.Trim() + "%' and (convert(varchar(32),addtime,120) >= '" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "' and convert(varchar(32),addtime,120)<='" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "')";
} //我在这里做了的全部查询,当全都等于空值的时候
if (ddlist.SelectedValue == "请选择" || txtname.Text.Trim() == "" || txtStart.Text.Trim() == "" || txtEnd.Text.Trim() == "")
{
this.repeater.DataSource = proBLL.GetALLList();//这个方法是全部查
this.repeater.DataBind();
} this.repeater.DataSource = proBLL.GetList(sSql);//这个方法是按条件查
this.repeater.DataBind();
public DataTable GetList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select id,p_name,p_version,p_product,p_detial,p_fid,addtime ");
strSql.Append(" FROM Product");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
return SqlHelp.ExecuteFill(strSql.ToString());
} public DataTable GetALLList()
{
return GetList("");
}
{
sSql = " p_product = '" + this.ddlist.SelectedValue + "'";
} if (txtname.Text.Trim() != "")
{
sSql = " p_name like '%" + txtname.Text.Trim() + "%'";
} if (this.txtStart.Text.Trim() != "")
{
if (this.txtEnd.Text.Trim() != "")
{
sSql = " (convert(varchar(32),addtime,120) >= '" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "' and convert(varchar(32),addtime,120)<='" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "')";
}
else
{
sSql = " convert(varchar(32),addtime,120) like '%" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "%'";
}
}
else
{
if (this.txtEnd.Text.Trim() != "")
{
sSql = " convert(varchar(32),addtime,120) like '%" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "%'";
}
} if (ddlist.SelectedValue != "" && txtname.Text.Trim() != "" && txtStart.Text.Trim() != "" && txtEnd.Text.Trim() != "")
{
sSql = " p_product = '" + this.ddlist.SelectedValue + "' and p_name like '%" + txtname.Text.Trim() + "%' and (convert(varchar(32),addtime,120) >= '" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "' and convert(varchar(32),addtime,120)<='" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "')";
} //我在这里做了的全部查询,当全都等于空值的时候
if (ddlist.SelectedValue == "请选择" || txtname.Text.Trim() == "" || txtStart.Text.Trim() == "" || txtEnd.Text.Trim() == "")
{
this.repeater.DataSource = proBLL.GetALLList();//这个方法是全部查
this.repeater.DataBind();
} this.repeater.DataSource = proBLL.GetList(sSql);//这个方法是按条件查
this.repeater.DataBind();
public DataTable GetList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select id,p_name,p_version,p_product,p_detial,p_fid,addtime ");
strSql.Append(" FROM Product");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
return SqlHelp.ExecuteFill(strSql.ToString());
} public DataTable GetALLList()
{
return GetList("");
}
如果不需要判断,或者直接在代码上加个else,因为如果你判断都为空了就执行proBLL.GetALLList()这个方法,这个判断过后,下面还是会执行proBLL.GetList(sSql)啊if (ddlist.SelectedValue == "请选择" || txtname.Text.Trim() == "" || txtStart.Text.Trim() == "" || txtEnd.Text.Trim() == "")
{
this.repeater.DataSource = proBLL.GetALLList();//这个方法是全部查
this.repeater.DataBind();
}
else
[
this.repeater.DataSource = proBLL.GetList(sSql);//这个方法是按条件查
this.repeater.DataBind();
}
{
string database = System.Configuration.ConfigurationManager.AppSettings["key"].ToString();
SqlDataMapper mapper = new SqlDataMapper("conn");
string sql = @"select e.employeename,i.proj_id,i.proj_name,i.proj_prop_leader,i.proj_depname,i.proj_info_start_date,i.proj_info_finish_date,t.detail,t.rescoursename
from dbo.view_SelEmployee as e
join dbo.view_SelProjects as i
on e.employeeid=i.proj_prop_leader join SRV_LNK2." + database + ".dbo.tabPrjQueryfields as t on t.detail=i.proj_prop_category where len(i.proj_prop_leader) <> 0";
if (projID != "" && projID != null)
{
sql += " and i.proj_id='" + projID + "'";
}
if (projname != "" && projname != null)
{
sql += " and i.proj_name like '%" + projname + "%'";
}
if (dep != "" && dep != null)
{
sql += " and t.rescoursename like '%" + dep + "%'";
}
if (projmanager != "" && projmanager != null)
{
sql += " and e.employeename like '%"+projmanager+"%'";
}
DataTable dt = mapper.GetDataSetInfo(sql).Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
return dt;
}
return dt;
}
我一般的条件 查询
你这思路应该是这样
string sSql="";
//然后这是条件判断
if (ddlist.SelectedValue != "请选择")
{
sSql = " p_product = '" + this.ddlist.SelectedValue + "'";
} if (txtname.Text.Trim() != "")
{
sSql = " p_name like '%" + txtname.Text.Trim() + "%'";
} if (this.txtStart.Text.Trim() != "")
{
if (this.txtEnd.Text.Trim() != "")
{
sSql = " (convert(varchar(32),addtime,120) >= '" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "' and convert(varchar(32),addtime,120)<='" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "')";
}
else
{
sSql = " convert(varchar(32),addtime,120) like '%" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "%'";
}
}
else
{
if (this.txtEnd.Text.Trim() != "")
{
sSql = " convert(varchar(32),addtime,120) like '%" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "%'";
}
} if (ddlist.SelectedValue != "" && txtname.Text.Trim() != "" && txtStart.Text.Trim() != "" && txtEnd.Text.Trim() != "")
{
sSql = " p_product = '" + this.ddlist.SelectedValue + "' and p_name like '%" + txtname.Text.Trim() + "%' and (convert(varchar(32),addtime,120) >= '" + Convert.ToDateTime(this.txtStart.Text.Trim()).ToString("yyyy-MM-dd") + "' and convert(varchar(32),addtime,120)<='" + Convert.ToDateTime(this.txtEnd.Text.Trim()).ToString("yyyy-MM-dd") + "')";
}
//然后再这判断sSql是否为空来执行哪个方法
DataTable dt = new DataTable();
if(sSql.Trim().Equals(""))
{
dt =proBLL.GetALLList();
}
else
{
dt =proBLL.GetList(sSql);
}
this.repeater.DataSource = dt
this.repeater.DataBind();
将这些代码放在你的查询事件里
我照你的办法试了下还是不能查出来全部,你看一下我写的那个GetAllList方法获得全部,那么写对吗?就基于那个条件写的
if (ddlist.SelectedValue == "请选择" && txtname.Text.Trim() == "" && txtStart.Text.Trim() == "" && txtEnd.Text.Trim() == "")
{
this.repeater.DataSource = proBLL.GetALLList();//这个方法是全部查
this.repeater.DataBind();
} this.repeater.DataSource = proBLL.GetList(sSql);//这个方法是按条件查
this.repeater.DataBind();
if (ddlist.SelectedValue == "请选择" && txtname.Text.Trim() == "" && txtStart.Text.Trim() == "" && txtEnd.Text.Trim() == "")
{
this.repeater.DataSource = proBLL.GetALLList();//这个方法是全部查
this.repeater.DataBind();
}else{ this.repeater.DataSource = proBLL.GetList(sSql);//这个方法是按条件查
this.repeater.DataBind();
}