2

SQL Serverに対して作成されたものであるのに対し、SQLCEで動作するように変更しようとしているレガシーアプリケーションを使用しています。

私が今得ている問題は、dataAdapter.Updateを実行しようとすると、SQLCEがコマンドテキストでSELECTキーワードを予期していないと文句を言うことです。これは、SQLCEがバッチ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 が主キーであると想定するのは少し奇抜ですが、自動生成コードは、このコードを生成する前にそれを確認する可能性があります。

于 2010-04-08T11:09:10.793 に答える