2017-01-10 68 views
0

我試圖在ASP.NET的「創建用戶」表單上創建一個函數。通過SQL檢查用戶是否存在於表中

我試圖弄清楚如何從我的類文件獲取SQL驗證函數的if語句,以查看用戶名和電子郵件是否已被使用。

這是我試圖做的。


類文件:

public DataTable ValidateUSER(string Username) 
{ 
    string SQL = "SELECT fldUsername FROM tblBruger WHERE fldUsername LIKE 
    @username"; 

    SqlCommand CMD = new SqlCommand(SQL); 

    CMD.Parameters.AddWithValue("@username", Username); 

    return DA.GetData(CMD); 
} 

我隱藏:

LoginClass objLogin = new LoginClass(); 

protected void ButtonCheck_Click(object sender, EventArgs e) 
{ 
    string txtUser = txtUsername.Text; 


    if (obj.ValidateUSER(txtUser) == txtUser) 
    { 
     litResult.Text = "Username already taken"; 
    } 
+0

你永遠執行SQL命令,請參閱該文檔的此頁:https://msdn.microsoft.com/en-us/library/fksx3b4f.aspx – maccettura

+0

您是否想過在創建新應用程序時使用Asp.NET創建的默認樣板文件?只需創建一個包含個人用戶帳戶的新應用程序,所有這些都是爲您完成的,無需重新開發此應用程序 – maximdumont

+0

從未聽說過樣板文件?這是一項學校任務,所以我們必須與他們一起工作,教他們什麼。 –

回答

0

我不知道什麼是DA但我猜這是某種形式的數據訪問框架,將執行提供的命令並返回一個數據表。如果是這種情況,你只需要做一些小修改。

public string ValidateUser(string userName) 
{ 
    string sql = "SELECT fldUsername FROM tblBruger WHERE fldUsername LIKE @username"; 
    SqlCommand cmd= new SqlCommand(sql); 
    cmd.Parameters.AddWithValue("@username", userName); 
    DataTable table = DA.GetData(cmd); 
    if (table.Rows.Count != 0) 
    { 
     return table.Rows[0].Item[0] as string; 
    } 
    return null; 
} 

這裏也是一個調整。請注意我做了檢查不區分大小寫的,這似乎是明智的用戶名:還

var s = obj.ValidateUser(txtUserName.Text); 
if (s != null && s.ToLower() == txtUserName.Text.ToLower()) 
{ 
    litResult.Text = "Username already taken"; 
} 

注意我改變了你的一些標識符的資本,使它們與由微軟發佈的C# coding conventions一致。

+0

我修好了,謝謝!你的代碼不起作用。如果(s!= null) { litResult.Text =「用戶名已被佔用」;如果(s!=空) 已更改 。 } –

0

您需要使用SqlDataReader

string SQL = "SELECT fldUsername FROM tblBruger WHERE fldUsername LIKE 
    @username"; 

SqlCommand CMD = new SqlCommand(SQL); 

SqlDataReader rdr = CMD.ExecuteReader(); 

while (rdr.Read()) 
{ 
//do something with result set 
} 
相關問題