我搜索了SO的常见问题,但它们与我的任务不符。
我有一个包含许多(约50个)ValueTyped
属性的类。
并且需要使用类的属性填充new DataSet
对象。
例如,如果我有这个:
public partial class MyClass
{
public int Id {get; set;}
public string Name {get; set;}
// and other public properties
}
我需要两个函数来返回
为单个MyClass项目填充DataSet,其中包含一行。
为多个MyClass项目填充多个行的DataSet。
public partial class MyClass
{
public DataSet GenerateDataSet(MyClass source);
public DataSet GenerateDataSet(IEnumerable<MyClass> source);
}
我尝试了很多像下面这样的解决方案,但由于DataRow
没有公共构造函数,因此无法编译。
var ds = new DataSet();
ds.Tables.Add(new DataTable("DataTableName"));
var table = ds.Tables[0];
table.Rows.Add(new DataRow(new DataRowBuilder(table, 0)));
答案 0 :(得分:2)
public partial class MyClass
{
public DataSet GenerateDataSet(MyClass source)
{
return GenerateDataSet(new[] { source });
}
public DataSet GenerateDataSet(IEnumerable<MyClass> source)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.Tables.Add(dt);
dt.Columns.Add("Name");
dt.Columns.Add("Id", typeof(int));
// other columns...
foreach (MyClass c in source)
{
DataRow dr = dt.Rows.Add();
dr.SetField("Name", c.Name);
dr.SetField("Id", c.Id);
// other properties
}
return ds;
}
}