在 ASP.NET MVC 專案中執行 `INSERT` 語句時拋出異常,而 `SELECT`、`UPDATE` 操作均正常。錯誤截圖顯示 SQL 語法錯誤附近有多餘標點符號。
經排查,`INSERT` 語句的字段列表或值列表末尾多了一個逗號 `,`。例如:
-- 錯誤示例
INSERT INTO Users (Name, Age, ) VALUES ('Tom', 25, ); -- 字段列表與值列表尾部多逗號
-- 正確寫法
INSERT INTO Users (Name, Age) VALUES ('Tom', 25);
string sql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
using (var cmd = new SqlCommand(sql, conn)) {
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Age", age);
cmd.ExecuteNonQuery();
}
看似低級的逗號錯誤實則暴露了手寫 SQL 的風險。採用 ORM(如 Entity Framework Core)或微型 ORM(Dapper)配合參數化查詢,能將此類語法錯誤消滅在編譯期,提升代碼健壯性與安全性。