【发布时间】:2020-08-03 08:35:29
【问题描述】:
我在 Access DB 上创建了这个表。
string sql = $"CREATE TABLE Eventi (" +
$"id AUTOINCREMENT PRIMARY KEY," +
$"tipologia varchar(255)," +
$"denominazione varchar(255)," +
$"descrizione varchar(255)," +
$"data date," +
$"costo decimal," +
$"prezzo decimal" +
$");";
我使用此查询在表中插入新记录,但是当我执行查询时,它返回给我一个 'System.Data.OleDb.OleDbException: 'Data type mismatch in criteria expression.'。
cmd.CommandText = "INSERT INTO Eventi (tipologia,denominazione,descrizione,data,costo,prezzo) VALUES " +
"(@tipologia, @denominazione, @descrizione, @data, @costo, @prezzo);";
这里是添加查询参数的代码:
cmd.Parameters.Add("@id", OleDbType.Integer).Value = v.Id;
cmd.Parameters.Add("@tipologia", OleDbType.VarChar, 255).Value = v.Tipologia;
cmd.Parameters.Add("@denominazione", OleDbType.VarChar, 255).Value = v.Denominazione;
cmd.Parameters.Add("@descrizione", OleDbType.VarChar, 255).Value = v.Descrizione;
cmd.Parameters.Add("@data", OleDbType.Date).Value = v.Data.Date;
cmd.Parameters.Add("@costo", OleDbType.Double).Value = v.Costo;
cmd.Parameters.Add("@prezzo", OleDbType.Double).Value = v.Prezzo;
【问题讨论】:
-
OleDbType.Decimal。 Double 和 Decimal 是不同的类型。 -
我想知道它是否会与 AddWithValue 一起解决! :)