欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

access中 where子句的有关问题

更新时间: 2014-01-05 02:17:12 责任编辑: Author_N1

 

access中 Where子句的问题
select * from t where year(日期)=?and month(日期)=?and day(日期)=?and 姓名 like ? 
在应用程序界面上,
用户如果输入了年份,则查询中包含year(日期)=?反之不包含。
如果输入了月份,则查询中包含month(日期)=?反之不包含。
如果输入了日期,则查询中包含day(日期)=?反之不包含。
如果输入了姓名,则查询中包含姓名 like ?反之不包含。
VS如何生成这样一个带参数的查询
--参考方法--
这个你在前台程序判断一下:

sql = 'select * from t where 1= 1 '

if 年份 <> 空
   sql = ' and year(日期)= '+ 年份

if 月份  <> 空
   sql = ' and year(日期)= '+ 月份

。。。       
--参考方法--
根据界面中空间录入是否为空,来拼接响应sql、
举个例子,比如有两个控件  日期是textBox1  姓名是 textBox2

那代码代码大概就是这样子

         string sql = "select * from T where 1=1 ";
         if (!string.IsNullOrEmpty(textBox1.Text))
               sql += "and data = " + textBox1.Text;
         if (!string.IsNullOrEmpty(textBox2.Text))
               sql += "and name = " + textBox2.Text;

--参考方法--
对每个变量附上null值,然后用isnull来判断是否存在,比如where year(日期)=isnull(@年份,year(日期))
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:17:12
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7985/
本文WWW.DOC100.NET DOC100.NET版权所有。