【发布时间】:2021-01-27 16:41:36
【问题描述】:
我的 Blazor 项目有问题,我在变量中使用了“DateTime.Now”,以便通过存储过程将其插入到我的 sql 数据库中。但我有这个错误消息:'将数据类型 varchar 转换为日期时间时出错。'
我给你存储过程+代码:
ALTER PROCEDURE [dbo].[spNewLog] @Date datetime
AS
insert into dbo.LogChange (Date) values (@Date);
和代码:
LogModel l = new LogModel
{
Date = DateTime.Now,
};
await _logdb.NewLog(l);
我添加 _logdb.NewLog(LogModel log) :
string sql = "spNewLog @Date ='" + log.Date + "';"
using (IDbConnection connection = new SqlConnection(connectionString))
{
await connection.ExecuteAsync(sql);
}
另一个编辑:我使用 dapper
【问题讨论】:
-
DateTime.Now是一个属性。DateTime类型映射到datetime没有任何问题。NewLog是做什么的?看起来它正在将日期转换为字符串而不是使用日期参数 -
我在标题中进行了编辑,但我在代码中使用了属性
-
这段代码有什么作用? ADO.NET 不会将 DateTime 转换为字符串。代码正在做它不应该做的事情。您是否正在使用字符串插值来生成查询?
-
您需要向我们展示 SP 是如何执行的。
_logDb.NewLog()是做什么的? -
这似乎与存储过程无关。请发帖
NewLog()。
标签: c# sql datetime entity-framework-core