C# 如何修复ExecuteOnQuery错误
C# 如何修复ExecuteOnQuery错误,c#,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
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();
}
为了指导你,我们需要例外,因为失败的原因是不同的。
但正如我在代码中看到的,在为参数赋值时有一些强制转换,当参数是DateTime类型时,应该将DateTime作为其值而不是字符串传递。所以我认为您应该更改
cmd.Parameters.AddWithValue(“@T_date”,dt.ToString())代码>到cmd.Parameters.AddWithValue(“@T_date”,dt)代码>它会引发什么异常?请尝试以下操作:cmd.Parameters.AddWithValue(“@T\u date”,dt)代码>提供异常的详细信息,可能有太多不同的原因导致此操作失败,如果没有异常的详细信息,我们无法帮助您解决问题。我添加了异常代码,但仍在这一行显示异常cmd.ExecuteNonQuery();更改了该选项,但仍然得到异常string item=nTCbox.SelectedItem.ToString();int price=int.Parse(nTPrice.Text);int quantity=int.Parse(nTQuantity.Text);DateTime dt=DateTime.Now代码>从组合框和文本框捕获数据异常消息是什么?将transaction
更改为[transaction]
,然后查看发生了什么