1

我有一个 SP,我正在SqlQuery使用DbContext.Database. 我这样称呼它:

编辑1:-DateTime现在通过

var t = form["datetime"];//value is 2013-May-08 09:30
DateTime dtm;
if (!DateTime.TryParse(t, out dtm))//successfully parses
     dtm = new DateTime(2013, 05, 8, 9, 30, 0);
var rTime= new SqlParameter("@rTime", dtm);
var result = UoW.ExecuteSp<SPResult>("spResult @rTime", rTime).ToList();

最后一行抛出指定转换 from stringtoDateTime无效的异常。

以下是SP的定义。

ALTER PROC [dbo].[spResult]
(
    @rTime SMALLDATETIME --VARCHAR(32)
)
AS
BEGIN
--OTHER CODE
END

如果我直接在 SQL Management Studio 中执行 SP,它运行没有任何问题:

EXEC spResult ='2013-May-08 09:30'

在 SP 中,字符串转换为日期时间,如下所示:

@resultAt SMALLDATETIME = CAST(@rTime AS SMALLDATETIME)

这里出了什么问题?

4

1 回答 1

2

什么spResult作为参数?大概是一个datetime?在这种情况下:给它一个DateTime

var t = DateTime.Now;

或者

var t = new DateTime(2013,5,8,9,30,0); // 8 May 2013, 9:30am

如果错误与SPResult- 好吧,我们看不到,所以很难评论:但再次 - 将 SQL 映射[n][var]char(len|max)到 C# string,并将 SQL 映射datetime到 C# DateTime

于 2013-05-09T11:58:26.230 回答