我有一个带有方法
的存储库类using Dapper;
public int Execute(string query, object arguments)
{
return Connection.Execute(query,arguments);
}
在另一个程序中,我尝试运行插入查询。
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
强加给多个项目?
答案 0 :(得分:2)
试试这个。
将CimLoadDate的类型从对象类型更改为DateTime。因为它是数据库中的dateTime
public Datetime CimLoadDate { get; set; }
答案 1 :(得分:-1)