【问题标题】:'No data exists for the row/column.' Oledb Exception'行/列不存在数据。' Oledb 异常
【发布时间】:2018-06-21 05:03:29
【问题描述】:
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT [Names] FROM Test", 
connection);

OleDbDataReader reader = command.ExecuteReader();
string result = reader.GetValue(0).ToString();
        MessageBox.Show(result);
        connection.Close();

有人可以帮忙吗?我收到“行/列不存在数据。”抛出此错误

【问题讨论】:

  • 当没有数据存在或者您在尝试从数据读取器中获取数据之前未能reader.Read 时会发生这种情况。阅读How to Ask 并获取tour

标签: c# sql ms-access oledb


【解决方案1】:

你没有调用读取方法

    OleDbDataReader reader = command.ExecuteReader();
    if(reader.Read())
    {
       string result = reader.GetValue(0).ToString();
       MessageBox.Show(result);
     }
    connection.Close();

这只会从结果中读取第一行。如果你想要所有的行,那么你需要写一些这样的东西

    OleDbDataReader reader = command.ExecuteReader();        
    List<string> data = new List<string>();
    while(reader.Read())
    {
      data.Add(reader.GetValue(0).ToString());
    }        
    connection.Close();

【讨论】:

  • 如果实际上没有返回任何数据会怎样?
  • 我知道,但是您正在为显然不知道的人发帖。 if (reader.Read()){} 和 hasRows 一样有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 2013-06-19
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多