0

我想从 datareader 获取一个值,但是有一个错误叫做

"No data exists for the row/column".

这是我的代码

//select the group where status is active
OleDbCommand com2 = new OleDbCommand("select group from tblBillConfig where status=1 group by group",con);
OleDbDataReader dr2 = com2.ExecuteReader();

//int i = Convert.ToInt32(dr2);
string ii = dr2["group"].ToString();
MessageBox.Show(ii);

请问有人可以帮忙吗?

4

1 回答 1

1

如果您的查询没有返回任何记录,那么您会收到该消息。
您需要检查是否有返回的行,然后尝试读取它们....

顺便说一句,我很确定 GROUP 这个词是每个 SQL 数据库系统的保留关键字。要使用它,您应该将它括在方括号中(但每个数据库系统可能不同)

OleDbCommand com2 = new OleDbCommand("select [group] from tblBillConfig " + 
                                     "where status=1 group by [group]",con);
OleDbDataReader dr2 = com2.ExecuteReader();

// This will load the first row, so you could get its value
if(dr2.Read())
{
    string ii = dr2["group"].ToString();
    MessageBox.Show(ii);
}
else
{
   MessageBox.Show("Query doesn't return any rows");
}
于 2013-11-02T14:38:39.567 回答