当我将开始日期和结束日期的日期日期从textbox传递给sql时,我收到错误。
alter procedure [dbo].[sp_insert_ProjectDetail]
(@projectname varchar(max),
@projectnos varchar(20),
@Task_assigned varchar(max),
@Startdate varchar(30),
@enddate varchar(30),
@status varchar(20),
@analyst varchar(max),
@qualitycheck varchar(max)
)as
declare @value as varchar(20)
INSERT INTO tbl_ProjectDetails(ProjectName,ProjectNos,Task_assigned,Startdate,enddate,Analyst,Qualitycheck,flag,Status_Name)VALUES (@projectname,@projectnos,@Task_assigned,@Startdate,@enddate,@analyst,@qualitycheck,0,@status)
答案 0 :(得分:2)
我收到错误
顶尖;始终发布确切的错误消息,并理想地采样创建该错误的输入值;我强烈怀疑你在1月13日提出这个问题并非巧合;你可能想检查一下,昨天的数据没有记录为12月1日(以及11月1日星期日等)。但是......继续......
@Startdate varchar(30),
@enddate varchar(30),
这里的根本诀窍是:不要那样做。当然,不要盲目地通过“按原样”对待它们来盲目地施展这些价值观。建议的方法是解析调用层的值,这样可能会变为:
@Startdate datetime,
@enddate datetime,
(或类似;还有其他日期/时间数据类型;它应该与表匹配),并担心调用代码中的格式:
var start = DateTime.Parse[Exact](startText, ...); // some expected format/culture/etc
...
cmd.Parameters.AddWithValue("Startdate", start);
(等)