应该是下面两句出现异常了!
DateTime departureDate=Convert.ToDateTime(Request.Form["txtDepartureDate"]);
DateTime arrivalDate=Convert.ToDateTime(Request.Form["txtArrivalDate"]);Request.Form["txtDepartureDate"]和Request.Form["txtArrivalDate"]取到的字符串可能和你希望的格式并不相同!我碰到一次,一用户自己定义了时间日期格式,从而使DateTime.ToString()得到的字串怎么都写不到数据库的日期字段中!建议自已指定日期变量转成字符串时,自己指字格式如:"yyyy-MM-dd"之类的!另:从“1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM ”看,你的机器日期格式是美式? 还有为什么用Request.Form["txtDepartureDate"] 而不是直接引用控件的值?你不是使用服务器控件吗?
DateTime departureDate=Convert.ToDateTime(Request.Form["txtDepartureDate"]);
DateTime arrivalDate=Convert.ToDateTime(Request.Form["txtArrivalDate"]);Request.Form["txtDepartureDate"]和Request.Form["txtArrivalDate"]取到的字符串可能和你希望的格式并不相同!我碰到一次,一用户自己定义了时间日期格式,从而使DateTime.ToString()得到的字串怎么都写不到数据库的日期字段中!建议自已指定日期变量转成字符串时,自己指字格式如:"yyyy-MM-dd"之类的!另:从“1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM ”看,你的机器日期格式是美式? 还有为什么用Request.Form["txtDepartureDate"] 而不是直接引用控件的值?你不是使用服务器控件吗?
--------------------------
CREATE PROCEDURE SearchFlight
(
@sStartingFrom varchar(50),
@sDestination varchar(50),
@dArrivalDate datetime,
@dDepartureDate datetime,
@iTravelClassID int
)
AS
begin
set nocount on
select F.* from flights F
inner join travel_class_seat_capacity TCSC
on TCSC.flight_ID=F.flight_ID
inner join travel_class TC
on TC.travel_class_ID=TCSC.travel_class_ID
where F.starting_from=@sStartingFrom
and F.destination=@sDestination
and convert(varchar(30),F.arrival_date,103)=convert(varchar(30),@dArrivalDate,103)
and convert(varchar(30),F.departure_date,103)=convert(varvhar(30),@dDepartureDate,103)
and TC.travel_class_ID=@iTravelClassID
and TCSC.number_of_seats>0
end
GO