C# 从另一个数据集生成数据集

C# 从另一个数据集生成数据集,c#,winforms,dataset,C#,Winforms,Dataset,我有一个客户机-服务器项目(C#公司的小型项目),服务器有一个带有一些表的数据集(由于某些原因没有数据库,因此我们将数据集保存为XML文件)。 当客户端连接到服务器时,服务器应根据其权限向客户端发送一些信息,一些客户端必须添加到服务器中的数据集或从中删除。 我正在考虑创建一个新的小数据集并将其发送到客户端(作为xml),但我不知道如何生成具有特定表和行的新数据集(我尝试使用Linq来创建数据集,但没有任何效果)。 我的问题是如何做到这一点,这是一个向客户发送信息的好解决方案吗?你能推荐一个更好的

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

我正在考虑创建一个新的小数据集并将其发送到客户端(作为xml),但我不知道如何生成具有特定表和行的新数据集(我尝试使用Linq来创建数据集,但没有任何效果)。


我的问题是如何做到这一点,这是一个向客户发送信息的好解决方案吗?你能推荐一个更好的方案来向客户发送数据(我的意思是不要创建新的数据集)。

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

使用DataSet.Merge(DataTable)方法

比如说,

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

如果需要,Merge方法还有一个重载,用于获取数据行数组。

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


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

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

问题不在于传递信息,而在于从基本的DataSetI love堆栈溢出中收集正确的信息。如果你来到这里,问如何走路,五个人会突然出现,告诉你跑步是一项高级技术,走路是如此的重要。。。也许你想等待2011年推出的跳过技术。你想要一个全新的数据集,还是原始数据集的一个子集?不,我想要原始数据集的一个子集不要忘了删除行后ds.AcceptChanges(),否则它们仍然会在数据集中。谢谢你,quillbreaker,这正是我想要的。