存储过程 '1' 附近有语法错误
来源:百度知道 编辑:UC知道 时间:2024/09/20 07:00:14
下面的存储过程,是执行一个复合查询,直接执行这个存储过程没有问题,但是C#执行就会报错。
麻烦哪位高手指点一下,如果能用另外的方法写存储过程实现这个功能也可!
@StarID varchar(20),
@ProvinceID int,
@CityID int,
@LinkNumber int,
@StartDate datetime,
@endDate datetime,
@HotelName varchar(50),
@State int
)
AS
DECLARE @MainStr VARCHAR(1000)
set @MainStr='SELECT * FROM HotelInfo where LinkNumber='+convert(varchar(20),@LinkNumber)+'and IsProcess=0 and State='+convert(varchar(20),@State)
if (@StartDate<>'' and @endDate<>'')
set @MainStr =@MainStr+'and ReserveDate BETWEEN '+convert(varchar(30),@StartDate)+' and'+ convert(varchar(30),@endDate)
if @StarID <>'请选择'
set @MainStr =@MainStr+'and StarID='+@StarID
if @ProvinceID<>''
set @MainStr=@MainStr+ 'and ProvinceID='+convert(varchar(20),@ProvinceID)
if @CityID<>''
麻烦哪位高手指点一下,如果能用另外的方法写存储过程实现这个功能也可!
@StarID varchar(20),
@ProvinceID int,
@CityID int,
@LinkNumber int,
@StartDate datetime,
@endDate datetime,
@HotelName varchar(50),
@State int
)
AS
DECLARE @MainStr VARCHAR(1000)
set @MainStr='SELECT * FROM HotelInfo where LinkNumber='+convert(varchar(20),@LinkNumber)+'and IsProcess=0 and State='+convert(varchar(20),@State)
if (@StartDate<>'' and @endDate<>'')
set @MainStr =@MainStr+'and ReserveDate BETWEEN '+convert(varchar(30),@StartDate)+' and'+ convert(varchar(30),@endDate)
if @StarID <>'请选择'
set @MainStr =@MainStr+'and StarID='+@StarID
if @ProvinceID<>''
set @MainStr=@MainStr+ 'and ProvinceID='+convert(varchar(20),@ProvinceID)
if @CityID<>''
注意日期的转换
AS
DECLARE @MainStr VARCHAR(1000)
set @MainStr='SELECT * FROM HotelInfo where LinkNumber='+convert(varchar(20),@LinkNumber)+'and IsProcess=0 and State='+convert(varchar(20),@State)
if (@StartDate<>'' and @endDate<>'')
set @MainStr =@MainStr+'and ReserveDate BETWEEN '''+convert(varchar(30),@StartDate,120)+''' and '''+ convert(varchar(30),@endDate,120)+''''
if @StarID <>'请选择'
set @MainStr =@MainStr+'and StarID='+@StarID
if @ProvinceID<>''
set @MainStr=@MainStr+ 'and ProvinceID='+convert(varchar(20),@ProvinceID)
if @CityID<>''
set @MainStr=@MainStr+ 'and CityID='+convert(varchar(20),@CityID)
if @HotelName<>''
set @MainStr=@MainStr+ 'and HotelName like %'+@HotelName+'%'
set @M