2012-01-02 10 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

達成しようとしているのは正確ですか? –

+0

@Haris Hasan返された値をすべて配列に取得するには – Mike

+0

@Mike:タイトルと(見かけの)質問が一致しません...どのように正確に配列に入れたいですか? 1要素配列として?結果列は配列であるはずですか? – user7116

答えて

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

+0

いいえ、ループにロジックを追加して、限界に達したときに中断することができます。または、SQLにTOP 20を追加します。 – Mondo

+0

ああ、どのように私はリストの特定のエントリを呼び出すだろうか? – Mike

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)); 
} 
関連する問題