1

ASP.NET と SQL Server データベース、および Visual Studio 2010 の使用について質問があります。問題は、ログイン コントロール cs 部分に関するものです。

フォームをデータベースにリンクしました。ログインとパスワードをDBのものと比較する必要がありますが、行

SqlDataReader rdr = com.ExecuteReader(); 

「ユーザー」付近の構文にエラーがあると言っています

クエリの問題ですか?

助けてください。

private bool UserLogin(string userName, string password)
{
    // read the coonection string from web.config 
    string conString = ConfigurationManager.ConnectionStrings["MidLinData"].ConnectionString;

    using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(conString))
    {
        con.Open();
        //' declare the command that will be used to execute the select statement 
       // SqlCommand com = new SqlCommand("SELECT login FROM user WHERE userName = @login AND Password = @password", con);
        SqlCommand com = new SqlCommand("SELECT login FROM user WHERE userName = @login ", con);
        SqlCommand com2 = new SqlCommand("SELECT password FROM user WHERE password = @password ", con);
        // set the username and password parameters
        com.Parameters.Add("@login", SqlDbType.NVarChar).Value = userName;
        SqlDataReader rdr = com.ExecuteReader();
        //com.Parameters.Add("@password", SqlDbType.NVarChar).Value = password;
        string result = rdr[0].ToString();

        // execute the select statment 
        //  string result = Convert.ToString(com.ExecuteScalar());
        //' check the result 
        if (string.IsNullOrEmpty(result))
        {
            //invalid user/password , return flase 
            return false;
        }
        else
        {
            // valid login
            return true;
        } 

        return true;
    }
}

コンパイラは次のように述べています。

'/visualStudioWebsite' アプリケーションでサーバー エラーが発生しました。

キーワード「user」付近の構文が正しくありません。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。

エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.Data.SqlClient.SqlException: キーワード 'user' 付近の構文が正しくありません。

ソース エラー:

57 行目: // ユーザー名とパスワードのパラメーターを設定します
58 行目: com.Parameters.Add("@login", SqlDbType.NVarChar).Value = userName;
行 59: SqlDataReader rdr = com.ExecuteReader();
60 行目: com.Parameters.Add("@password", SqlDbType.NVarChar).Value = password;
61 行目:

ソース ファイル: c:\Users\annasolovjova\Desktop\visualStudioWebsite\login.aspx.cs 行: 59

4

2 に答える 2

0

次のように両方のコマンドを組み合わせることができます。

SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "SELECT login, password FROM user WHERE userName = @login and password = @password";
com.Parameters.AddWithValue("login", userName); 
com.Parameters.AddWithValue("password", password);
于 2013-10-30T23:02:34.927 に答える