.net 将C#数据集拆分为多个数据集
我有一个现有的应用程序,它将文本文件转换为数据集,然后传递给另一个方法进行处理。到目前为止,文本文件始终用于1个位置(内部客户端引用) 客户机现在有第二种文件格式,其中包含多个位置。我想从这个新文件中获取返回的数据集,并根据文件中的位置字段将其转换为数据集数组。这将允许我们利用现有的方法,为单个位置接受数据集.net 将C#数据集拆分为多个数据集,.net,dataset,.net,Dataset,我有一个现有的应用程序,它将文本文件转换为数据集,然后传递给另一个方法进行处理。到目前为止,文本文件始终用于1个位置(内部客户端引用) 客户机现在有第二种文件格式,其中包含多个位置。我想从这个新文件中获取返回的数据集,并根据文件中的位置字段将其转换为数据集数组。这将允许我们利用现有的方法,为单个位置接受数据集 .Net中是否有内置方法允许我将数据集拆分为多个数据集,或者我必须自己创建此逻辑?不,没有内置方法,您的要求非常模糊。但我会给你一个想法 您已经提到位置字段是键,每个唯一的位置都应该有自己
.Net中是否有内置方法允许我将数据集拆分为多个数据集,或者我必须自己创建此逻辑?不,没有内置方法,您的要求非常模糊。但我会给你一个想法 您已经提到位置字段是键,每个唯一的位置都应该有自己的
数据集。然后您应该填写一个列表
。您可以使用LINQ从文件中读取所有行并按其分组:
List<DataSet> dataSets = new List<DataSet>();
DataSet datasetSample = new DataSet();
// add table(s) with columns here
char separator = '\t'; // replace with actual separator
var locationGroups = File.ReadLines("Path")
.Select(l => new { arr = l.Split(separator), line = l })
.Select(x => new { x.arr, x.line, location = x.arr[0].Trim() })
.GroupBy(x => x.location);
注意,我假设location是行中的第一个字段,相应地更改它。您知道数据集
只是一个或多个数据表
的容器吗?因此,您可以向数据集添加另一个表。除此之外,您应该添加更多的上下文或代码,否则很难提供比一般语句更多的内容。嗨,蒂姆,我知道一个数据集包含1个或多个数据表。在本例中,我尝试获取一个具有1个表的数据集,并将其拆分为具有1个表的多个数据集。使用这种方法的唯一原因是现有方法已经使用了已传递的Dataset对象,因此不需要更多的编码。Tim,感谢您推荐这种方法,因为它可以完美地工作。我甚至不知道LINQ可以读取文件,因为我只在数据库中使用过它。
foreach (var locationgroup in locationGroups)
{
DataSet ds = datasetSample.Clone(); // clones only table-schemata, no data
DataTable tbl = ds.Tables[0]; // you've mentioned that there is just one table
foreach (var location in locationgroup)
{
tbl.Rows.Add(location.arr);
}
dataSets.Add(ds);
}