2012-04-11 18 views
0

我想將選擇查詢的結果存儲在C#數組中。請告訴我如何獲取數據表值並將其存儲在數組中。我的選擇查詢結果包含n行並且只有一列。C# - 在數組中存儲數據表值

+0

不要忘記,以紀念答案accpeted如果你得到想要的信息... – 2012-04-11 08:17:54

回答

4

嘗試這樣的事情

private void getData() 
     { 
      SqlCeConnection conn = new SqlCeConnection("data source='c:\\northwind.sdf'; mode=Exclusive;"); 
      SqlCeDataAdapter da = new SqlCeDataAdapter("Select [Unit Price] from Products", conn); 
      DataTable dtSource = new DataTable(); 
      da.Fill(dtSource); 
      DataRow[] dr = new DataRow[dtSource.Rows.Count]; 
      dtSource.Rows.CopyTo(dr, 0); 
      double[] dblPrice= Array.ConvertAll(dr, new Converter<DataRow , Double>(DataRowToDouble)); 

     } 

     public static double DataRowToDouble(DataRow dr) 
     { 
      return Convert.ToDouble(dr["Unit Price"].ToString()); 
     } 
6

替換type與單個列(例如intstring,...)和myField與你的單身列名的數據類型。

var myArray = (from row in myDataTable.AsEnumerable() 
       select row.Field<type>("myField")).ToArray(); 

使用的C#泛型和類型推斷的魔力,你的陣列將自動獲得正確的數據類型(例如int[]string[],...)。

+1

+1 - 這是LINQ – 2012-04-11 06:33:07

+0

+1的幫助下最好的最...道路爲最好的最 – Simon 2012-04-11 07:40:38

0
DataTable mydt = new DataTable(); 
ArrayList aLrows = new ArrayList(); 

foreach (DataRow dataRow in mydt.Rows) 
{ 
    aLrows.Add(string.Join(";", dataRow.ItemArray.Select(item => item.ToString))); 
}