我只想日期发送到一个存储过程,我写了这个C#代码:发送日期时间值存储过程
string[] pr = { "/" };
string[] s = txtStartDate.Text.Split(pr, StringSplitOptions.None);
term.Start_date = new DateTime(Convert.ToInt32(s[0]), Convert.ToInt32(s[1]), Convert.ToInt32(s[2])).Date;
s = txtEndDate.Text.Split(pr, StringSplitOptions.None);
term.End_date = new DateTime(Convert.ToInt32(s[0]),Convert.ToInt32(s[1]),Convert.ToInt32(s[2])).Date;
,我将其发送到存储过程是这样的:
public bool AddNewTerm(Term term)
{
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter ("@termName",term.TermName),
new SqlParameter ("@start_date",term.Start_date),
new SqlParameter ("@end_date",term.End_date)
};
return SqlDBHelper.ExecuteNonQuery("AddNewTerm", CommandType.StoredProcedure, parameters);
}
但是当它进入存储过程时说:
SqlDateTime溢出。必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。
我看其他的话题,但他们不能帮我
这是存储过程的代码:
ALTER PROCEDURE dbo.AddNewTerm
(
@termName varchar(50),
@start_date date,
@end_date date
)
AS
insert into term(termName, start_date, end_date)
values(@termName, @start_date, @end_date)
RETURN
问题出在哪里?
我建议你看看DateTime.Parse和DateTime.TryParse方法。 – B0Andrew
当您调试您的应用程序时,这两个参数的值是什么? –
例如30/6/1390 12:00:00 AM – nimaSadeghpour