我在ms访问中创建了一个数据库,在数据库中我有一个包含两列的表,第一列是Name
,Text
数据类型,另一列是Date
Date/time
数据类型。我想在表格中插入值,但它会为月历提供此错误
标准表达式中的数据类型不匹配。
string sqlQuery = "INSERT INTO register (`Name`,`Date`) values (?,?)";
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\DB.accdb"))
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("@Name", this.textBox1.Text);
cmd.Parameters.AddWithValue("@Date", this.monthCalendar1.Text);
cmd.ExecuteNonQuery();
}
答案 0 :(得分:4)
,另一列是Date with Date / time数据类型
问题是您尝试将此列插入DateTime
的字符串。您需要直接将monthCalendar1
传递给
我们不知道这个SelectedDate
完全控制了什么,但它应该有一些DateTime
属性或其他东西。如果没有,只需使用DateTime.Parse
或其他内容将此字符串解析为AddWithValue
。
不要使用Add
方法。 It may generate unexpected and surprising results sometimes。使用LengthInput
方法重载来指定parameter type及其大小。
答案 1 :(得分:-1)
从AddwithValue paranthesis
中删除它