2011-06-09 36 views
0

我有一個存儲過程,這是否:SQL存儲過程 - 有問題retreiving多行數據與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+會給我一個索引錯誤。有沒有更好的方法來檢索所有行?

感謝

回答

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]; 
+0

謝謝! – tdjfdjdj 2011-06-09 16:21:56

2

IDataReader.GetString(2)返回第三列的值,而不是記錄。您需要使用Read()方法前進到下一條記錄。

+0

哦,這是有道理的。那麼如何從選擇TOP 4中獲得所有數據呢?是否有另一種方式來轉儲信息? – tdjfdjdj 2011-06-09 14:04:56

+0

看看我添加的鏈接。它有一個可以重複使用的示例代碼。 – a1ex07 2011-06-09 14:05:53

+0

您需要添加'while(test.Read()){....}'來遍歷結果集 – a1ex07 2011-06-09 14:07:07