繁体   English   中英

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

[英]Better way to use data set in C#

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

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

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;

有没有更好和有管理的方式来做到这一点。 我可以使用枚举或其他任何东西使代码更容易编写以减少工作量吗?

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

这应该摆脱["<column_name>"]丑陋。

如果数据集的结构与数据库中的表类似,那么Visual Studio可以很容易地创建一个:只需在解决方案中的某个位置单击Add - > New Item ,然后选择DataSet VS将显示一个设计器,您可以从服务器资源管理器中拖动表。

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

  • 创建一个空的DataSet(使用Add - > New Item - > DataSet
  • 使用文本编辑器打开新创建的文件(由dafault,在VS中显示XSD设计器)
  • 粘贴我手动创建的XSD

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

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

或者更好的是不必是XML(你只想要分层可读文本考虑JSON而不是http://james.newtonking.com/pages/json-net.aspx

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM