日期:2014-05-18  浏览次数:20392 次

验证两个TextBox为空的 问题!!!!!!!!
现在要做一个图书的查询     有下列几种查询条件:

书名,作者,出版社,日期(起始日期,截止日期)

也可以联合查询也可以单独查询.

别的都做出来了把SQL语句连接起来就可以.

现在问题是比如   用户输入了起始日期   不输入截止日期的话SQL语句就会出错!

想得到的效果是     输入了起始日期   就必须输入截止日期.   或者输入了截止日期就必须

输入起始日期.这样的一个需求.就是不知道怎么验证了!

我暂时是这么写的   但是这么写的话如果起始和截止日期都填写上了   就一直提示输入

起始日期了!(是个笨办法)
---------------------
  if   (!txtDate1.Text.Equals( " "))
                        {
                                Label1.Text   =   "请输入截止日期! ";
                        }
                        if   (!txtDate2.Text.Equals( " "))
                        {
                                Label1.Text   =   "请输起始止日期! ";
                        }
                        if(txtDate2.Text.Equals( " ")   &&   txtDate1.Text.Equals( " "))
                        {
                                Response.Redirect( "findbook.aspx?name= "   +   this.txtBname.Text   +   "&Author= "   +   this.txtAuthor.Text   +   "&cbs= "   +   this.txtCbs.Text   +   "&date1= "   +   this.txtDate1.Text   +   "&date2= "   +   this.txtDate2.Text   +   " ");
                        }
-------------------
都给我 "绕 "晕   了
没什么开发经验.
大家帮帮忙   谢谢了
本人有些菜.大家多多指教.

当然   如果有更好的方法   希望大家告诉我.比如只输入起始日期的情况下   直接查询出来起始日期以后的   所有图书.



------解决方案--------------------
问题可以这样解决:当输入起始日期而不输入截至日期时,查询的是起始日期之后的数据;当不输入起始日期只输入截至日期时,查询的是截至日期之前的数据.
在sql里面的解决方法
create proc sps_getdate
@startdate datetime,
@enddate datetime,
……--其他查询参数
as
select * from [table] where
(@startdate < bookdate or @startdate is null) and
(@enddate > bookdate or @enddate is null) and
…… --其他参数判断

在程序里面如果查询条件没有输入的话,那就将查询字段的值设置为空就可以一次实现多条件查询了。