Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修复ExecuteOnQuery错误_C# - Fatal编程技术网

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]
,然后查看发生了什么