OleDB异常-C#
我有下面的连接代码来访问数据库。我可以调试并查看连接字符串和参数值,但在OleDB异常-C#,c#,ms-access,C#,Ms Access,我有下面的连接代码来访问数据库。我可以调试并查看连接字符串和参数值,但在myAccessCommand.ExecuteNonQuery() 访问表定义为: 我不知道问题出在哪里 您能否从您的代码中向我们展示模型的类别/类型?AddWithValue是引发此类问题的最佳选择。它创建一个参数,其数据类型根据给定的值推断。如果参数数据类型与列类型不匹配,将进行大量转换。使用Add方法而不是AddWithValue,或者仔细检查您的inputsiirc您不能使用命名占位符(@XXX)尝试将字符串中的占
myAccessCommand.ExecuteNonQuery()
访问表定义为:
我不知道问题出在哪里 您能否从您的代码中向我们展示
模型的类别/类型
?AddWithValue是引发此类问题的最佳选择。它创建一个参数,其数据类型根据给定的值推断。如果参数数据类型与列类型不匹配,将进行大量转换。使用Add方法而不是AddWithValue,或者仔细检查您的inputsiirc您不能使用命名占位符(@XXX
)尝试将字符串中的占位符替换为值(?,,,,…
并使用myAccessCommand.Parameters.AddWithValue(model.entity.Name);
的顺序正确。@AlexK.-System.Data.OleDb允许使用命名占位符,但仍将其视为严格的位置占位符,因此建议使用?
占位符,但不是严格要求的。
using (OleDbConnection thisConnection = new OleDbConnection(connectionname))
{
string query = "INSERT INTO HornerPluginResults([Entity],[Date],[Depth],[FormationTemp])VALUES(@Entity,@Date,@Depth,@FormationTemp)";
OleDbCommand myAccessCommand = new OleDbCommand(query, thisConnection);
myAccessCommand.Parameters.AddWithValue("@Entity", model.entity.Name);
myAccessCommand.Parameters.AddWithValue("@Date", model.TableResults[0].todaydate);
myAccessCommand.Parameters.AddWithValue("@Depth", model.Depth);
myAccessCommand.Parameters.AddWithValue("@FormationTemp", formationtemp);
thisConnection.Open();
myAccessCommand.ExecuteNonQuery();
}