2012-01-02 61 views
0

目前我只能輸出這個字符串,儘管我已經嘗試創建一個數組並使用int [],但它根本不喜歡它。如何將reader.GetInt32(0)的輸出放入數組中?把SqlCeDataReader輸出放入一個字符串(C#)

com.Parameters.AddWithValue("date", Form1.date); 
SqlCeDataReader reader = com.ExecuteReader(); 
while (reader.Read()) 
{ 
    int resultsoutput = reader.GetInt32(0); 
    MessageBox.Show(resultsoutput.ToString()); 
} 
+0

你究竟想達到什麼目的? – 2012-01-02 17:32:03

+0

@Haris Hasan將所有返回的值存入數組 – Mike 2012-01-02 17:37:43

+0

@Mike:您的標題和(明顯的)問題不匹配......您要如何將它放入數組中?作爲1個元素的數組?結果列應該是一個數組嗎? – user7116 2012-01-02 17:44:59

回答

1
 List<int> results = new List<int>(); 
     com.Parameters.AddWithValue("date", Form1.date); 
     SqlCeDataReader reader = com.ExecuteReader(); 
     while (reader.Read()) 
     { 
      int resultsoutput = reader.GetInt32(0); 

      results.Add(resultsoutput); 
      // I wouldn't use a MessageBox in this loop 
      // MessageBox.Show(resultsoutput.ToString()); 
     } 

將它添加到收藏

+0

你能用這種方法定義列表中最大的條目數量嗎? – Mike 2012-01-02 17:32:03

+0

不,但您可以在循環中添加一些邏輯,以便在達到限制時中斷。或者在您的SQL中添加TOP 20。 – Mondo 2012-01-02 17:34:57

+0

啊,我明白了,那麼我怎麼會在列表中調用一個特定的條目呢? – Mike 2012-01-02 17:36:46

1

reader.GetInt32(0);只讀取第一列。要將所有列讀入數組,請使用GetValues()

using System.Linq; 
// ... 
while (reader.Read()) 
{ 
    Object[] values = new Object[reader.FieldCount]; 
    int fieldCount = reader.GetValues(values); 
    values.ToList().ForEach(value => results.Add(parseInt(value)); 
}