MS Access データベースに単純なテーブルがあります。
-------------------
| Programs |
|-----------------|
| Id (PrimaryKey) |
| Name |
| Path |
| Notes |
-------------------
次に、Visual Studio ウィザードを使用して、対応するDataTable
とを生成しTableAdapter
ます。
生成された Select ステートメントは、期待どおりに見えます。
SELECT Id, Name, Path, Notes
FROM Programs
しかし、生成された Update ステートメントは非常に複雑です。
UPDATE Programs
SET Id = ?, Name = ?, Path = ?, Notes = ?
WHERE (Id = ?) AND (? = 1) AND (Name IS NULL) AND (? = 1) AND (Path IS NULL) OR
(Id = ?) AND (? = 1) AND (Name = ?) AND (Path IS NULL) OR
(Id = ?) AND (? = 1) AND (Name IS NULL) AND (Path = ?) OR
(Id = ?) AND (Name = ?) AND (Path = ?)
なぜそんなに複雑に生成されるのですか?次のように、もっと単純ではないのはなぜですか。
UPDATE Programs
SET Id = ?, Name = ?, Path = ?, Notes = ?
WHERE (Id = ?)