我们已经创建了一个自定义数据集并用一些数据填充它。
在添加数据之前,我们在数据集中添加如下列
DataSet archiveDataset = new DataSet("Archive");
DataTable dsTable = archiveDataset.Tables.Add("Data");
dsTable.Columns.Add("Id", typeof(int));
dsTable.Columns.Add("Name", typeof(string));
dsTable.Columns.Add("LastOperationBy", typeof(int));
dsTable.Columns.Add("Time", typeof(DateTime))
创建数据集后,我们按以下方式填写值
DataRow dataRow = dsTable.NewRow();
dataRow["Id"] = source.Id;
dataRow["Name"] = source.Name;
dataRow["LastOperationBy"] = source.LastOperationBy;
dataRow["Time"] = source.LaunchTime;
有没有更好的和有管理的方式来做到这一点。我可以使用枚举或其他任何东西使代码更容易编写,以减少工作量吗?
答案 0 :(得分:3)
您可以尝试使用Typed Dataset。
这应该摆脱["<column_name>"]
丑陋。
如果数据集的结构与数据库中的表类似,那么Visual Studio可以很容易地创建一个:只需单击添加 - &gt;在解决方案的某处 New Item 并选择 DataSet 。 VS将显示一个设计器,您可以从服务器资源管理器中拖动表。
更新(回应Simon的评论后): 类型化数据集实际上是XSD(XML模式定义)。 我在类似案例中所做的是:
您也可以选择使用设计器来创建架构。
答案 1 :(得分:1)
考虑您的评论&#34;我正在使用数据集将数据导出到XML文件&#34;我建议使用其他技术,例如
或者更好的是 不是XML(并且您只希望分层可读文本考虑JSON而不是http://james.newtonking.com/pages/json-net.aspx
答案 2 :(得分:0)
您可以以两种方式绑定数据集,第一种是使用数据库,第二种是手动添加。
为数据集创建列后,您可以使用Loops
添加,如果您有10000个条目,则可以添加它。
答案 3 :(得分:0)
您可以使用Reflection
。另一个选项是使用EntityFramework
或NHibernate
映射列名和数据结构列,然后避免这些代码手动填充每个字段。但它们会增加更多的复杂性。性能方面,您的代码也更好。