如何修复ExecuteNonQuery错误

时间:2014-04-06 11:04:16

标签: c#

ExecuteNonQuery会引发异常,我该如何解决?

string sqlQuery = "INSERT INTO transaction(ID,item_name,quantity,price,T_date) values (?,?,?,?,?)";
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\KCdb.accdb"))
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
{
    conn.Open();
    cmd.Parameters.AddWithValue("@ID", id);
    cmd.Parameters.AddWithValue("@item_name", item.ToString());
    cmd.Parameters.AddWithValue("@quantity", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.Parameters.AddWithValue("@T_date", dt.ToString());
    cmd.ExecuteNonQuery();
}

1 个答案:

答案 0 :(得分:0)

为了指导你,我们需要例外,因为会有不同的失败原因。 但正如我在你的代码中看到的那样,在为参数赋值时会有一些强制转换,当你的参数是DateTime类型时,你应该传递DateTime作为其值而不是字符串。我认为您应该将cmd.Parameters.AddWithValue("@T_date", dt.ToString());更改为cmd.Parameters.AddWithValue("@T_date", dt);