代码之家  ›  专栏  ›  技术社区  ›  Paul Michaels

C将字符串数组转换为数据集

  •  0
  • Paul Michaels  · 技术社区  · 15 年前

    我有一个字符串数组,需要将它们转换为数据集。有什么捷径吗?例如:

    string[] results = GetResults();    
    DataSet myDataSet = new DataSet();
    
    results = myDataSet.ToDataSet();  // Convert array to data set
    

    我不太在意格式或结构。

    3 回复  |  直到 9 年前
        1
  •  11
  •   Daniel Renshaw    15 年前

    我看不出这里面有什么价值,但如果你真的 必须 按照您的请求,下面的代码将创建一个数据集,该数据集具有一个表,该表在数组中每个项都有一个列和一行。

    internal static class Program
    {
        private static void Main(string[] args)
        {
            string[] array = new [] { "aaa", "bbb", "ccc" };
            DataSet dataSet = array.ToDataSet();
        }
    
        private static DataSet ToDataSet(this string[] input)
        {
            DataSet dataSet = new DataSet();
            DataTable dataTable = dataSet.Tables.Add();
            dataTable.Columns.Add();
            Array.ForEach(input, c => dataTable.Rows.Add()[0] = c);
            return dataSet;
        }
    }
    
        2
  •  2
  •   spongebob    10 年前
    dataTable.LoadDataRow(array, true);
    
        3
  •  0
  •   Rob Sedgwick    12 年前

    其他的例子对我不起作用。发现这一点:

      public DataTable ConvertArrayToDatatable(MarketUnit[] arrList)
        {
            DataTable dt = new DataTable();
            try
            {
                if (arrList.Count() > 0)
                {
                    Type arrype = arrList[0].GetType();
                    dt = new DataTable(arrype.Name);
    
                    foreach (PropertyInfo propInfo in arrype.GetProperties())
                    {
                        dt.Columns.Add(new DataColumn(propInfo.Name));
                    }
    
                    foreach (object obj in arrList)
                    {
                        DataRow dr = dt.NewRow();
    
                        foreach (DataColumn dc in dt.Columns)
                        {
                            dr[dc.ColumnName] = obj.GetType().GetProperty(dc.ColumnName).GetValue(obj, null);
                        }
                        dt.Rows.Add(dr);
    
                    }
                }
    
    
                return dt;
            }
            catch (Exception ex)
            {
                return dt;
            }
    
        }