2

我正在使用一个我正在尝试更改的遗留应用程序,以便它可以与 SQL CE 一起使用,而它最初是针对 SQL Server 编写的。

我现在遇到的问题是,当我尝试执行 dataAdapter.Update 时,SQL CE 抱怨它不希望在命令文本中使用 SELECT 关键字。我相信这是因为 SQL CE 不支持批处理 SELECT 语句。

自动生成的表适配器命令如下所示...

this._adapter.InsertCommand.CommandText = @"INSERT INTO [Table] ([Field1], [Field2]) VALUES (@Value1, @Value2);
SELECT Field1, Field2 FROM Table WHERE (Field1 = @Value1)";

它在做什么?看起来它正在将数据表中的新记录插入到数据库中,然后将该记录从数据库中读回数据表中?那有什么意义呢?

我可以浏览代码并删除所有这些 SELECT 语句吗?或者有没有更简单的方法来解决我想要将这些数据适配器与 SQL CE 一起使用的问题?

我无法重新生成这些表格适配器,因为那些知道如何早已离开的人。

4

2 回答 2

1

它只是在更新后使用数据库中的最新值更新对象。对我来说似乎总是有点不必要,但是嘿......

从维护的角度来看,这些都是令人讨厌的 - 如果您有选择权,您可以通过将这一切抽象到适当的数据层来为自己省去很多麻烦。

于 2010-04-08T10:31:57.757 回答
0

允许字段值可能被表上的触发器更改。我认为,在自动生成的样板文件中足够明智。

虽然 select 语句假设 field1 是主键有点奇怪......但也许 autogen 代码确保它在生成这段代码之前。

于 2010-04-08T11:09:10.793 回答