0

我有一个文本框,其中包含与此类似的数据行:

sheep
haggis
red squirrels
chickens
rabbits

和一个 SQL CE 表,其中有一列名为foods,用于存储这些值。同步这两个数据源的最佳方式是什么?例如,如果用户从文本框中删除red squirrelsand并添加,则包含和应该删除的表行并插入包含 的新行。chickenscarrotsred squirrelschickenscarrots

现在,我的解决方案是将旧列表与新列表进行比较并执行两个操作。1)通过使用比较列表来查找已删除的项目Except

List<String> removedFoods = oldList.Except(newList).ToList();

这些标签用 删除DELETE。另一个Except语句查找已添加的标签,然后添加INSERT.

List<String> addedFoods = newList.Except(oldList).ToList();

他们是一种更好的方法,它涉及我缺少的一个 C#/SQL 语句(或者一般来说是一种更好的方法)?

4

2 回答 2

1

你的问题是关于性能的,对吗?从您已经在做的事情来看,我认为性能改进的空间不大。无论如何,您都必须进行删除和插入。正如蒂姆在回答您的问题时所问的那样,这取决于您餐桌上的食物数量。

您可以清除表数据,如下所示:

TRUNCATE TABLE foods 

MSDN:TRUNCATE TABLE 类似于没有 WHERE 子句的 DELETE 语句;但是,TRUNCATE TABLE 速度更快,使用的系统和事务日志资源更少

然后使用文本框数据重新插入正确的数据。

于 2012-06-12T23:53:23.217 回答
1

制作一个看起来像多行文本框的数据网格比自己进行所有解析和处理要容易得多。

跟踪行/行会容易得多。

也删除和更新。

于 2012-06-13T04:00:55.233 回答