sql存储过程 - 使用Idatareader检索多行数据时遇到问题

时间:2011-06-09 13:58:42

标签: c# asp.net sql stored-procedures idatareader

我有一个执行此操作的存储过程:

SELECT TOP 4 FROM dbo.test

(表格包含5行)

我的c#代码是:

IDataReader test= ((IDataReader)(DataProvider.Instance().ExecuteReader("fetchtest")));
 test.Read();
 title1.Text = test.GetString(0);
 title2.Text = test.GetString(1);
 title3.Text = test.GetString(2);
 title4.Text = test.GetString(3); 

但是我只能显示0和1. 2+会给我一个索引错误。有没有更好的方法来检索所有行?

由于

2 个答案:

答案 0 :(得分:2)

IDataReader.GetString(2)返回第三列的值,而不是记录。您需要使用Read()方法前进到下一条记录。

答案 1 :(得分:0)

就像a1ex07所说,GetString获得第n列。这是一个完整的代码示例。

List<string> titles = new List<string>();
using (IDataReader test = ((IDataReader)(DataProvider.Instance().ExecuteReader("fetchtest"))))
{
    while (test.Read())
    {
       titles.Add(test.GetString(0));
    }
}


title1.Text = titles[0];
title2.Text = titles[1];
title3.Text = titles[2];
title4.Text = titles[3];