【问题标题】:C# - Storing datatable values in an arrayC# - 将数据表值存储在数组中
【发布时间】:2012-04-23 11:07:23
【问题描述】:

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

【问题讨论】:

  • 如果你得到你想要的信息,不要忘记将答案标记为已接受...

标签: c# asp.net sql datatable


【解决方案1】:

type 替换为单列的数据类型(例如intstring、...),将myField 替换为单列的名称。

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

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

【讨论】:

    【解决方案2】:

    试试这样的

     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());
            }
    

    【讨论】:

      【解决方案3】:
      DataTable mydt = new DataTable();
      ArrayList aLrows = new ArrayList();
      
      foreach (DataRow dataRow in mydt.Rows)
      {
        aLrows.Add(string.Join(";", dataRow.ItemArray.Select(item => item.ToString)));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-13
        • 2013-09-29
        相关资源
        最近更新 更多