ADO SqlReader在read()=true后失败:在没有数据时尝试读取无效
本文关键字:数据 无效 读取 失败 read SqlReader true ADO | 更新日期: 2023-09-27 18:18:35
我有以下一段代码(在一些答案后修改):
String sql = "SELECT invoice_pk FROM invoices WHERE invoice_number = " + InvoiceNumberLabel.Text;
SqlCommand cmd = new SqlCommand(sql, invoiceHeaderOnOSDconn);
SqlDataReader invoiceResult = cmd.ExecuteReader();
if (invoiceResult.HasRows)
{
if (invoiceResult.Read())
{ // As Rahul suggested (even though the post is now deleted) I added this third check and it worked
if (invoiceResult["invoice_pk"] != DBNull.Value)
{
String invoice_pk = invoiceResult["invoice_pk"].ToString();
}
}
invoiceResult.Close();
}
据我所知,它不应该失败,因为我正在仔细检查结果,首先是"HasRows",然后是"Read()"。现在,虽然代码可以工作,但我比以前更困惑,因为使用相同的值它开始工作。
谁能告诉我为什么?尝试invoicerresult . getstring()与列idx或列名。