我正在使用我正在尝试更改的遗留应用程序,以便它可以与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中使用这些数据适配器的问题?
我无法重新生成这些表适配器,就像那些知道如何早已离开的人一样。
答案 0 :(得分:1)
更新后,它只是使用数据库中的最新值更新对象。对我来说似乎总是有点不必要但是嘿......
从维护的角度来看,这些都是令人讨厌的 - 如果你有选择权,你可以通过将这一切抽象到适当的数据层来为自己省去很多麻烦。
答案 1 :(得分:0)
允许字段值可能被表上的触发器更改。我已经想到了,在自动生成的样板中。
虽然select语句有点令人讨厌,因为假设field1是主键......但是autogen代码可能会确保它在生成这段代码之前。