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