會員分級(一級~五級),高階會員可查看低階會員資料:一級看二~五級、二級看三~五級,以此類推。初學者嘗試用 for 迴圈或 switch 配合多條 SQL 實現,實際上單一查詢即可完成。
-- 假設目前登入會員 ID 為 @CurrentUserId
SELECT t.*
FROM Members t
WHERE t.UserLevel > (
SELECT UserLevel FROM Members WHERE Id = @CurrentUserId
);
using (var conn = new SqlConnection(connStr))
{
string sql = @"
SELECT * FROM Members
WHERE UserLevel > (SELECT UserLevel FROM Members WHERE Id = @CurrentUserId)";
using (var cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@CurrentUserId", currentUserId);
using (var da = new SqlDataAdapter(cmd))
{
var dt = new DataTable();
da.Fill(dt);
gridView.DataSource = dt;
gridView.DataBind();
}
}
}
LevelRank 對照表或使用 CASE WHEN 映射排序權重。UserLevel、Id 建立索引。ROW_NUMBER() 實作分頁查詢。