在C#中使用数据集的更好方法

本文关键字:更好 方法 数据集 | 更新日期: 2023-09-27 18:29:25

我们创建了一个自定义数据集,并用一些数据填充它。

在添加数据之前,我们在数据集中添加列,如下所示

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;

有没有更好的管理方法。我可以使用enum或其他任何东西使代码更容易编写以减少工作量吗?

在C#中使用数据集的更好方法

您可以尝试使用类型化数据集。

这应该消除["<column_name>"]的丑陋。

如果数据集的结构类似于数据库中的表,那么Visual Studio使创建数据集变得非常容易:只需单击解决方案中的添加->新项,然后选择数据集。VS将显示一个设计器,您可以在其中从服务器资源管理器拖动表。

更新(回应Simon的评论后):类型化数据集实际上是XSD(XML架构定义)。我在类似的案例中所做的是:

  • 创建了一个空数据集(使用添加->新项->数据集
  • 用文本编辑器打开了新创建的文件(dafault在VS中显示XSD设计器)
  • 粘贴我手动创建的XSD

您也可以选择使用设计器来创建架构。

考虑到您的评论"我正在使用数据集将数据导出到XML文件",我建议使用不同的技术,如

  • Linq到XMLhttp://msdn.microsoft.com/en-us/library/bb387061.aspx或
  • Xml序列化http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

或者更好的是没有是XML(并且您只希望层次可读的文本考虑JSONhttp://james.newtonking.com/pages/json-net.aspx

您可以通过两种方式绑定数据集,第一种是使用数据库,第二种是手动添加。为数据集创建列后,您可以使用Loops进行添加,如果您有10000个条目,则可以进行添加。

您可以使用Reflection。另一种选择是使用EntityFrameworkNHibernate来映射列名和数据结构列,然后避免使用这些代码手动填充每个字段。但它们会增加更多的复杂性。此外,在性能方面,您的代码更好。