遇到多组合条件查询!在asp.net里建立多组合条件查询?请高人给个解答

草履虫程序员 CSDN会员 草履虫程序员 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的多组合条件查询是这样的:在页面上有7个输入框,这个输入条件,不一定全部输入,有可能输入其中一个或者两个,判断过程在存储过程里完成的.存储过程里是写的:
CREATE PROCEDURE sp_tbWasteSource_Search
(
@sd varchar, --开始日期
@ed varchar, --结束日期
@Unit varchar(50), --单位
@Name varchar(30), --核素
@Class varchar(5), --类别
@Area varchar(10), --地区
@PitNo varchar(4) --基坑
)
AS
Declare @sql Nvarchar(100)
Declare @sWhere Nvarchar(200)
Set @sql ='select * from tb_wasteSource where '
Set @sWhere =''
if (@sd is not null)
Begin
Set @sWhere=@sWhere+'StoreDate>='+@sd+' AND '
End
if (@ed is not null)
Begin
Set @sWhere=@sWhere+'StoreDate<='+@ed+' AND '
End
if(@Unit<>'')
Begin
Set @sWhere=@sWhere+'UseUnit='+@Unit+' AND '
End
if(@Name<>'')
Begin
Set @sWhere=@sWhere+'SName='+@Name+' AND '
End
if(@Class<>'')
Begin
Set @sWhere=@sWhere+'SClass='+@Class+' AND '
End
if(@Area<>'')
Begin
Set @sWhere=@sWhere+'FromRegion='+@Area+' AND '
End
if(@PitNo<>'')
Begin
Set @sWhere=@sWhere+'StorePitNo='+@PitNo
End
Set @sql=@sql+@sWhere
exec (@sql)
GO
我的页面的单击按钮代码里是这样写的,存储过程有错,不知道如何调试?
protected void ibtnSearch_Click(object sender, ImageClickEventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_tbWasteSource_Search";
cmd.Parameters.Add(new SqlParameter("@sd",SqlDbType.VarChar,10));
cmd.Parameters.Add(new SqlParameter("@ed",SqlDbType.VarChar,10));
cmd.Parameters.Add(new SqlParameter("@Unit",SqlDbType.VarChar,50));
cmd.Parameters.Add(new SqlParameter("@Name",SqlDbType.VarChar,30));
cmd.Parameters.Add(new SqlParameter("@Class",SqlDbType.VarChar,5));
cmd.Parameters.Add(new SqlParameter("@Area",SqlDbType.VarChar,10));
cmd.Parameters.Add(new SqlParameter("@PitNo",SqlDbType.VarChar,4));
cmd.Parameters["@sd"].Value = this.txtFirstDate.Text == "" ? "": this.txtFirstDate.Text;
cmd.Parameters["@ed"].Value = this.txtLastDate.Text == "" ? "":this.txtLastDate.Text;
cmd.Parameters["@Unit"].Value = this.tbUnit.Text == "" ? "":this.tbUnit.Text;
cmd.Parameters["@Name"].Value = this.tbSourceName.Text == "" ? "":this.tbSourceName.Text;
cmd.Parameters["@Class"].Value = this.listClass.SelectedValue.ToString() == "" ? "":this.listClass.SelectedValue.ToString();
cmd.Parameters["@Area"].Value = this.listArea.SelectedValue.ToString() == "" ? "" : this.listArea.SelectedValue.ToString();
cmd.Parameters["@PitNo"].Value = this.listJK.SelectedValue.ToString() == "" ? "" : this.listJK.SelectedValue.ToString();
SqlDataReader dr = cmd.ExecuteReader();
this.gvFindData.DataSource = dr;
this.gvFindData.DataBind();
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
@sd varchar, --开始日期
@ed varchar, --结束日期
这两个设置日期类型可以吗?我现在在页面上某两个文本框里输入了条件之后,查不出结果?
...全文
评论 18
收藏 已收藏
分享
返回顶部
草履虫程序员 CSDN会员
.NET社区 62,272 成员 668,968 内容