如何使用C#将数据插入MS访问?

时间:2015-11-06 11:19:14

标签: c# winforms oledb

我在ms访问中创建了一个数据库,在数据库中我有一个包含两列的表,第一列是NameText数据类型,另一列是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();
}

2 个答案:

答案 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

中删除它