十进制值我使用下面的代码位的一些数据插入到数据库:数据库不接受现场
internal int InsertSample(Sample sample)
{
using (var db = new OleDbConnection(connectionString))
{
var query = Constants.InsertNewSample;
return db.Execute(query, sample);
}
}
当我通过Visual Studio在本地运行它,它工作正常。
然而,当我发布网站,并尝试插入,我得到一个错误:
Data type mismatch in criteria expression.
堆栈跟踪
[OleDbException (0x80040e07): Data type mismatch in criteria expression.]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) +1138392
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +247
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +208
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +58
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +162
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +107
Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) +93
Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) +758
MVCQCPage.Helpers.Access.InsertSample(Sample sample) +208
但是这只是发生如果Sample.MassOff
值在小数格式(例如1.6
)。
如果此值以整数形式传递(例如5
),那么在调试时和发布后它没有任何问题。
这是怎么回事?
数据库中的数据类型为numeric
,数据类型为Sample.MassOff
为string
。
让我知道,如果我可以提供任何更多的细节。
什么样库的扩展了经典使用Execute方法的OleDbException?你在使用Dapper吗? – Steve
Access甚至**是否具有**数字型数据类型? – stuartd
@Steve道歉,史蒂夫,是的,它是精巧的。 @stuartd我认为它可能被称为'号码' – Bassie