登錄後需根據 Session 中的用戶名查詢數據庫,將對應用戶信息(暱稱、性別、電話、郵箱)顯示在 Label 控件上。
string sql1 = "select * from XX where Name=" + Session["name"] + "";
SQL 注入風險:字符串拼接未加引號,且直接拼接用戶輸入。
語法錯誤:字符串類型字段查詢必須用單引號包裹。
// 使用參數化查詢防止 SQL 注入
string sql = "SELECT Nicename, Sex, PhoneNumber, Email FROM Users WHERE Name = @UserName";
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@UserName", Session["name"].ToString());
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
Label11.Text = dr["Nicename"].ToString();
Label12.Text = dr["Sex"].ToString();
Label13.Text = dr["PhoneNumber"].ToString();
Label14.Text = dr["Email"].ToString();
}
}
}
dr["ColumnName"] 替代 GetOrdinal,代碼更簡潔。