序列不包含元素时出现未处理的异常

本文关键字:未处理 异常 包含 元素 | 更新日期: 2023-09-27 18:27:07

我正在使用VS2012发布一个应用程序,该应用程序连接并读取本地MDB文件中的数据。该应用程序在Windows7中运行良好;然而,当我尝试在XP中运行它时,我会遇到一个未处理的异常。

我在这里到处看了看,发现了几页关于这方面的内容;然而,我想我不明白实际的原因是什么。我复制了我发现最相关的页面,但不确定如何在我的模型中实现它。

序列不包含元素?

下面是我用来查询数据库的代码。关于我可能做错了什么,有什么建议吗?

conection.Open();
var query = "select t_id From t_user where u_company='"+profselect.Text+"'";
var command = new System.Data.OleDb.OleDbCommand(query, conection);
var reader = command.ExecuteReader();
string blah=(reader[0].ToString());
textBox1.Text = blah;
reader.Close();
conection.Close();

序列不包含元素时出现未处理的异常

您需要调用读取器的Read()函数才能真正访问记录:

var reader = command.ExecuteReader();
while (reader.Read()) {
  string blah=(reader[0].ToString());
  textBox1.Text = blah;
}

或者如果只期望一行:

var reader = command.ExecuteReader();
if (reader.Read()) {
  string blah=(reader[0].ToString());
  textBox1.Text = blah;
} else {
  textBox1.Text = "oops.  no record";
}