我有一個簡單的表在MS Access數據庫:爲什麼Visual Studio DataSet Designer會生成如此複雜的查詢?
-------------------
| Programs |
|-----------------|
| Id (PrimaryKey) |
| Name |
| Path |
| Notes |
-------------------
然後使用Visual Studio嚮導生成我相應DataTable
和TableAdapter
。
生成的Select語句看起來就像預期:
SELECT Id, Name, Path, Notes
FROM Programs
但是生成的更新語句很複雜:
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 = ?)
這是一個隱藏國家安全局查詢 – DanFromGermany
哇 - 那味道不好 – Rikalous