如何从datareader获得价值

时间:2013-11-02 14:29:09

标签: c#-4.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);

请有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

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

顺便说一句,我很确定GROUP这个词是一个保留的关键词fow everyt 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");
}