2011-12-16 7 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文を作成します。また、私はあなたの "ログイン"アレンジメントは、Cookieやsesssion変数のように、ユーザーがすでに正常にログインしたことを示すために、何も保存せずにHomeAfter.aspxページにresponse.redirectを実行することに気付きました。

これには特別な理由がありますか、それともそれはあなたがちょうど始まって少しだけ勉強する必要があるからですか?

関連する問題