2012-01-02 59 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)); 
}