我有一个执行此操作的存储过程:
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+会给我一个索引错误。有没有更好的方法来检索所有行?
由于
答案 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];