首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

ASP.NET MVC 中 SQL Insert 語法錯誤排查:多餘逗號導致的異常

     編輯:程式設計疑難解答

現象描述

在 ASP.NET MVC 專案中執行 `INSERT` 語句時拋出異常,而 `SELECT`、`UPDATE` 操作均正常。錯誤截圖顯示 SQL 語法錯誤附近有多餘標點符號。

根因分析

經排查,`INSERT` 語句的字段列表或值列表末尾多了一個逗號 `,`。例如:

-- 錯誤示例
INSERT INTO Users (Name, Age, ) VALUES ('Tom', 25, ); -- 字段列表與值列表尾部多逗號

-- 正確寫法
INSERT INTO Users (Name, Age) VALUES ('Tom', 25);

最佳實踐建議

  • 使用參數化查詢:避免手動拼接 SQL 字符串,從源頭杜絕語法錯誤並防止注入攻擊。
    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 分析工具:如 SQL Server Profiler 或 EF Core 日誌,捕獲實際執行的 SQL 文本快速定位問題。
  • 代碼審查清單:提交前檢查動態 SQL 拼接處的標點符號配對情況。

總結

看似低級的逗號錯誤實則暴露了手寫 SQL 的風險。採用 ORM(如 Entity Framework Core)或微型 ORM(Dapper)配合參數化查詢,能將此類語法錯誤消滅在編譯期,提升代碼健壯性與安全性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved