从数据表中提取数据

时间:2019-01-01 12:01:53

标签: c# datatable

我有一个DataTable,其中有2列作为分号分隔的列表。我需要一种方法来解析这些列中的数据并将它们“匹配”在一起。例如,让我们以James Jo的信息为例-我希望它在提取时看起来像这样:

SH11 - Shirt
HA22 - Hat
SO33 - Socks

这是我的DataTable设置,所有的都是字符串值。

DataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("ItemsSold", typeof(string));
table.Columns.Add("ItemIDs, typeof(string));

table.Rows.Add("James Jo", "Shirt; Hat; Socks;", "SH11; HA22; SO33");
table.Rows.Add("Jack Bo", "Pants; Scarf;", "PA44; SC55");

1 个答案:

答案 0 :(得分:1)

1000次中有999次(有些甚至会经常说),使用分隔字符串表示数据是错误的方式,就像这样做是错误的。

理想情况下,您将有一个表用于项目,一个表用于名称以及一个表来表示它们之间的关系。

但是,假设您坚持使用当前的设计,则可以使用string.Split()方法从每个表单元格中的数据获取数组来获得所需的结果,如下所示:

var itemsSold = table.Rows[0].Field<string>("ItemsSold").Split(new string[] {", "}, StringSplitOptions.RemoveEmptyEntries);
var ItemIDs = table.Rows[0].Field<string>("ItemIDs").Split(new string[] {", "}, StringSplitOptions.RemoveEmptyEntries);

然后您将有两个字符串数组-一个包含"ItemsSold"的值,另一个包含"ItemIDs"的值。