我有一个字符串数组,需要将它们转换为数据集。有没有一些快捷方式来做到这一点?例如:
string[] results = GetResults();
DataSet myDataSet = new DataSet();
results = myDataSet.ToDataSet(); // Convert array to data set
我对格式化或结构不太感兴趣。
答案 0 :(得分:11)
我看不到任何值,但是如果你真的必须按照你的要求去做,下面的代码将创建一个数据集,其中包含一个表,每个项只有一列和一行在阵列中。
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;
}
}
答案 1 :(得分:2)
dataTable.LoadDataRow(array, true);
答案 2 :(得分:0)
其他例子对我不起作用。发现这个:
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;
}
}