首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

c#中datetime数据传入存储过程中一直报错求解决解决方法

2012-04-20 
c#中datetime数据传入存储过程中一直报错求解决C# codeSqlParameter[] parms new SqlParameter[5]parms

c#中datetime数据传入存储过程中一直报错求解决

C# code
            SqlParameter[] parms = new SqlParameter[5];            parms[0] = new SqlParameter("@PNRNumber", search.PnrNumber);            parms[1] = new SqlParameter("@InvoiceNumber", search.InvoiceNumber);            parms[2] = new SqlParameter("@StarDate",search.StarDate);//            parms[3] = new SqlParameter("@EndDate",search.EndDate);//search.StarDate search.EndDate均为datetime类型            parms[4] = new SqlParameter("@PaymentStatus",search.Status);            DataTable table = SqlHelper.ExecuteDataTable(CommandType.StoredProcedure, "proc_search", parms);            return table;



SQL code
alter proc proc_search@PNRNumber varchar(20),@InvoiceNumber varchar(50),@StarDate datetime,@EndDate datetime,@PaymentStatus varchar(50)asdeclare @str varchar(2000)set @str='select PaymentInfo.PNR,PaymentInfo.EpositDate,PaymentInfo.InvoiceNumber,PaymentInfo.PayType,PaymentInfo.PaymentStatus,PaymentInfo.AgentCode,PaymentInfo.SubAgentCode,PassengerInfo.FirstName,PassengerInfo.LastNamefrom PaymentInfo,PassengerInfo where PaymentInfo.PassengerId=PassengerInfo.PassengerId 'if(@PNRNumber<>'')beginset @str=@str+' and PaymentInfo.PNR='+@PNRNumberendif(@InvoiceNumber<>'')beginset @str=@str+' and PassengerInfo.InvoiceNumber='+@InvoiceNumberendif(@StarDate<>'' and @EndDate='')beginset @str=@str+' and PassengerInfo.EpositDate>'+@StarDateendif(@StarDate='' and @EndDate<>'')beginset @str=@str+' and PassengerInfo.EpositDate<'+@EndDateendif(@StarDate<>'' and @EndDate<>'')beginset @str=@str+' and PassengerInfo.EpositDate between'+@StarDate+' and '+@EndDateendif(@PaymentStatus<>'')beginset @str=@str+@PaymentStatusendset @str=@str+' order by PaymentInfo.EpositDate desc 'exec(@str)


传入的时候老是在sqlhepler里异常 报出现无法转换为datetime类型的问题

[解决办法]
探讨

我换了各种办法都没有解决

[解决办法]
探讨

引用:
我换了各种办法都没有解决



SQL code
declare @PNRNumber varchar(20)
declare @InvoiceNumber varchar(50)
declare @StarDate datetime
declare @StarDatedatetime datetime
declare @PaymentS……

[解决办法]
有可能数据库的区域和C#代码所在区域不一样造成的,比如,数据库不接受格式'01/29/2012',c#代码却没问题。改变一下日期格式试试
[解决办法]
你要将DateTime转换成字符串 Convert.ToDateTime(search.StarDate) 就应该可以了
[解决办法]
把时间的格式转换下呢。。。估计那个原因

热点排行