【问题标题】:Making a DataSet from another DataSet从另一个数据集创建一个数据集
【发布时间】:2011-02-16 13:47:27
【问题描述】:

我有一个客户端-服务器项目(C# 公司的小型项目),服务器有一个带有一些表的 DataSet(由于某些原因没有数据库,所以我们将 DataSet 保存为 XML 文件)。
当客户端连接到服务器时,服务器应该根据他的权限向客户端发送一些信息,并且一些客户端必须添加或删除服务器中的DataSet。

我正在考虑制作一个新的小型数据集并将其发送到客户端(作为 xml),但我不知道如何生成具有特定表和行的新数据集(我尝试使用 Linq to DataSet 但没有任何效果)。
我的问题是我该怎么做?这是向客户发送信息的好方法吗?你能建议一个更好的方案来向客户端发送数据吗(我的意思是而不是创建一个新的数据集)。

【问题讨论】:

  • 您想要一个完整的新数据集,还是原始数据集的一个子集?
  • 不,我想要原始数据集的子集

标签: c# winforms dataset


【解决方案1】:

加载数据集,然后将其保存为新名称。这是您的新数据集。然后你可以单独加载它。

完成此操作后,我们将假定新数据集称为 ds。您可以使用 ds.Tables.Remove(string) 删除整个表,使用 ds.Tables[string].Columns.Remove(string) 删除单个列。删除不需要的表格元素后,可以使用 ds.Tables[string].Rows.Remove(int) 删除数据行。

【讨论】:

  • 删除行后不要忘记 ds.AcceptChanges() 否则它们仍会在数据集中。
  • 谢谢你,这正是我正在寻找的。​​span>
【解决方案2】:

使用 DataSet.Merge(DataTable) 方法。

例如,

DataSet theDataSetToPassAround = new DataSet();
theDataSetToPassAround.Merge(youDataSet.Table[indexOfTheTableToPassAround]);

如果需要,Merge 方法还有一个重载,它采用 DataRows 数组。

【讨论】:

    【解决方案3】:

    如果您将数据发送给用户以供他们分析、审查、报告……那么您应该使用 Excel 或 CSV 作为输出。有很多方法可以将数据发送回直接在 Excel 中打开的用户,不过我目前使用最多的是NPOI。当我开始使用 NPOI 时,我发现了很多从 DataTable 到 Excel 的示例。如果您决定要将数据集输出到 Excel,NPOI 还支持多张工作表。

    【讨论】:

      【解决方案4】:

      为什么要传递数据集。 Web 服务或 WCF 正是用于此目的。为什么不直接传递xml而不是将其转换为数据集并传递它然后将其转换回xml。

      【讨论】:

      • 问题不在于传递信息,而是我发现很难从基本数据集中收集正确的信息
      • 我喜欢 Stack Overflow。如果你来这里问怎么走路,五个人会从木制品中出现,告诉你跑步是一项优越的技术,而步行的东西是如此 2008 年......也许你想等待跳跃技术的出现2011 年。
      猜你喜欢
      • 2011-05-11
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 2015-08-20
      • 2016-09-08
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      相关资源
      最近更新 更多