C# “错误”;“不允许从数据类型sql变量隐式转换为日期时间”;使用dapper将数据插入数据库时发生

C# “错误”;“不允许从数据类型sql变量隐式转换为日期时间”;使用dapper将数据插入数据库时发生,c#,dapper,C#,Dapper,我有一个带有方法的存储库类 using Dapper; public int Execute(string query, object arguments) { return Connection.Execute(query,arguments); } 在另一个程序中,我尝试运行insert查询 dbOps.Execute(qry, new {

我有一个带有方法的存储库类

using Dapper;
public int Execute(string query, object arguments)
    {
        return Connection.Execute(query,arguments);
    }
在另一个程序中,我尝试运行insert查询

dbOps.Execute(qry, new
                            {
                                transType = unp.TransType,
                                itemCode = unp.ItemCode,
                                itemQty = unp.ItemQty,
                                itemUM = unp.UnitMeasure,
                                itemSite = unp.ItemSite,
                                itemLoc1 = unp.ItemLocation1,
                                itemLoc2 = unp.ItemLocation2,
                                transRmk = unp.TransRmks,
                                transEffDate = unp.TransEffDate, //is DateTime
                                transDate = unp.TransDate, //is DateTime
                                cimStatus = unp.CimStatus,
                                cimBatchNo = unp.CimBatchNo,
                                transID = unp.TransID,
                                cimLoadDate = unp.CimLoadDate
                            });
unp类别:

internal class unp
    {
        public string TransType { get; set; }
        public string ItemCode { get; set; }
        public decimal ItemQty { get; set; }
        public string UnitMeasure { get; set; }
        public string ItemSite { get; set; }
        public string ItemLocation1 { get; set; }
        public string ItemLocation2 { get; set; }
        public string TransRmks { get; set; }
        public DateTime TransEffDate { get; set; }
        public DateTime TransDate { get; set; }
        public byte CimStatus { get; set; }
        public string CimBatchNo { get; set; }
        public string TransID { get; set; }
        public object CimLoadDate { get; set; }

        public string SourceFile { get; set; }
        public string JournalId { get; set; }
    }
查询字符串:

string qry = @"INSERT INTO [Transaction]
                                 VALUES(@transType,@itemCode,@itemQty,@itemUM,@itemSite,@itemLoc1,@itemLoc2,@transRmk,
                                 @transEffDate,@transDate,@cimStatus,@cimBatchNo,@transID,@cimLoadDate)"
我得到一个例外:

不允许从数据类型sql_variant隐式转换为datetime。使用CONVERT函数运行此查询


我能解决这个问题吗?或者我必须对多个项目强制执行
Dapper

表中的查询列可能不匹配。使用此链接可能有用

试试这个

将CimLoadDate的类型从对象类型更改为DateTime。因为它是数据库中的日期时间

public Datetime CimLoadDate { get; set; }

您是否在数据库和对象类中都将变量声明为datetime?您可以向我们显示您的查询吗?数据库数据类型是
DateTime
@hexx显示您在中使用的所有字段的声明parameters@MeerDeen参数是匿名的。只需强键入以匹配查询字符串上的参数。@插入记录时,hexed是否在unp.transefdate、unp.TransDate中有值,或者它们为空