錯誤代碼
string cmd = "select User_Name,User_Pass,from UserData"; // ❌ 多餘逗號
SqlCommand com = new SqlCommand(cmd, conConnection);
錯誤訊息
System.Data.SqlClient.SqlException: 'Incorrect syntax near the keyword 'from'.'
修正:移除欄位列表最後的逗號
string cmd = "select User_Name, User_Pass from UserData"; // ✅
進階:參數化查詢防止 SQL 注入
string cmd = "select User_Name, User_Pass from UserData where User_Name = @user";
using (SqlCommand com = new SqlCommand(cmd, conConnection)) {
com.Parameters.AddWithValue("@user", inputUserName);
using (SqlDataReader reader = com.ExecuteReader()) {
if (reader.Read()) {
string dbPass = reader["User_Pass"].ToString();
// 驗證密碼(建議用雜湊比對)
}
}
}
最佳實踐清單
- ✅ **永遠使用參數化查詢**,拼接字串極易注入。
- ✅ 密碼**儲存雜湊值**(BCrypt/Argon2),不存明文。
- ✅
using 區塊自動釋放連線/Reader。
- ✅ 連線字串放
appsettings.json / web.config,勿硬編碼。