2011-12-16 215 views
0

我有一個網站與登錄,從數據庫。asp.net登錄從數據庫網站

這是我的代碼:

 protected void SignIn_Click(object sender, EventArgs e) 
     { 
      SqlConnection con = new SqlConnection("Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Movie;Integrated Security=True"); 
      con.Open(); 

      string cmdStr = "select count(*) from Users"; 

      cmdStr += "where Username='" + UsernameSignIn.Text + "'"; 
      cmdStr+= "AND Password='"+PasswordSignIn.Text+"'"; 

      SqlCommand cmd = new SqlCommand(cmdStr, con); 

      int i = Convert.ToInt16(cmd.ExecuteScalar()); 

      if (i == 0) 
      { 
       ErrorSignIn.Text = "Sorry, Wrong Username or Password"; 
      } 
      else 
      { 
       Response.Redirect("HomeAfter.aspx"); 
      } 
     } 

出於某種原因,我遇到了一個錯誤:

附近有語法錯誤 ' - '

。 (對於這一行:int i = Convert.ToInt16(cmd.ExecuteScalar());

謝謝,

回答

2

沒有間距。您的查詢看起來是這樣的:

SELECT COUNT(*)從Userswhere用戶名= '... '和密碼=' ...'

添加空格,就像這樣:

string cmdStr = "select count(*) from Users"; 
cmdStr += " where Username='" + UsernameSignIn.Text + "'"; 
cmdStr+= " AND Password='"+PasswordSignIn.Text+"'"; 
1

除了從事實上這是一種認證形式(你真的應該考慮使用內置的ASP.NET成員資格提供者)這一事實,你至少應該使用參數化SQL查詢,而不是將純文本連接到創建你的SQL語句。另外,我注意到你的「登錄」安排只是簡單地做一個response.redirect到HomeAfter.aspx頁面而不存儲任何要重用的指示用戶已經成功登錄的東西,比如一個cookie或一個sesssion變量。

是否有任何特殊的原因,或者是因爲你剛剛開始,你需要研究一下?