C# - 在数组中存储数据表值

时间:2012-04-11 06:26:45

标签: c# asp.net sql datatable

我想将选择查询的结果存储在C#中的数组中。请告诉我如何获取数据表值并存储在数组中。我的选择查询结果包含n行且只有一列。

3 个答案:

答案 0 :(得分:6)

type替换为您的单个列的数据类型(例如intstring,...)和myField以及您的单个列的名称。< / p>

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

使用C#的泛型和类型推断技巧,您的数组将自动拥有正确的数据类型(例如int[]string[],...)。

答案 1 :(得分: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());
        }

答案 2 :(得分: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)));
}