问题描述
数据库里有一个交易时间。。然后前台有个开始时间和结束时间怎么做查询求具体语句。我知道用between但是不知道怎么定义变量。。还得考虑到多条件查询上边是这么写的,if(TextBox1.Text!=""){a=a+"and网点名称=@wm";h1.Add("@wm",TextBox1.Text);}if(TextBox2.Text!=""){a=a+"and交易类型=@lx";h1.Add("@lx",TextBox2.Text);}if(txtCardID.Text!=""){a=a+"and银行卡号like'%'+@kh+'%'";h1.Add("@kh",txtCardID.Text);}
解决方案
解决方案二:
select*fromxxxwheredatefieldbetween@aand@b你用参数化查询,给参数a和b赋值就行了
解决方案三:
DateTimedt;if(DateTime.TryParse(TimeStart.Text,outdt)){a=a+"and时间<=@TimeStart;h1.Add("@TimeStart",dt);}
类似上面的然后你的like也是错误的,应该是下面这种a=a+"and银行卡号like@kh";h1.Add("@kh","%"+txtCardID.Text+"%");
解决方案四:
引用1楼bdmh的回复:
select*fromxxxwheredatefieldbetween@aand@b你用参数化查询,给参数a和b赋值就行了
这样吗?if(txtStartTime.Text!=""&&txtEndTime.Text!=""){a=a+"datefieldbetween@kaishand@jieshu";h1.Add("@kaishi",txtStartTime.Text);h1.Add("@jieshu",txtEndTime.Text);}
解决方案五:
引用1楼bdmh的回复:
select*fromxxxwheredatefieldbetween@aand@b你用参数化查询,给参数a和b赋值就行了
非常感谢用你的方法我做出来了。就是有点不理解能讲讲吗--
解决方案六:
参考:
解决方案七:
select*fromtablewheretime1>='starttime'andtime2<='endtime'andnamelike'%a%'and.....需要条件一直往后面加,但是要考虑性能问题,大数据量这么写肯定查询很慢
解决方案八:
引用4楼u011147081的回复:
Quote: 引用1楼bdmh的回复:
select*fromxxxwheredatefieldbetween@aand@b你用参数化查询,给参数a和b赋值就行了非常感谢用你的方法我做出来了。就是有点不理解能讲讲吗--
SQL语句的基础知识你需要恶补了先弄明白在数据库里怎么查询,然后代码里实现这个SQL语句的拼接就行了