【发布时间】:2020-05-19 11:53:50
【问题描述】:
我希望使用 Invoice_No 从分配中获取 ALLOCATED_DEPOSIT 的总和。我正在通过 datareader 获取所有详细信息,但 仅执行标量对我来说是个问题。我尝试了所有方法,但使用以下代码总是给出 “数据类型不匹配错误”。
connection.Close();
try
{
connection.Open();
string cstrQuery = "SELECT SUM (ALLOCATED_DEPOSIT)FROM ALLOCATIONS WHERE INVOICE_NO= " + int.Parse(txt_Invoiceno.Text);
OleDbCommand cmd = new OleDbCommand(cstrQuery, connection);
int sum = Convert.ToInt32(cmd.ExecuteScalar());
//long sum = (long)dt.Compute("Sum(ALLOCATED_DEPOSIT)", "True");
textBox2.Text = sum.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
connection.Close();
【问题讨论】:
-
您能分享您收到的确切错误消息吗?代码中的哪一行抛出错误?
-
如果 Invoice_No 是文本类型,请为参数使用撇号分隔符。或者代替参数连接,查看stackoverflow.com/questions/11905185/…
-
@ChetanRanpariya 它说“标准表达式中的数据类型不匹配。”
标签: c# ms-access executescalar