C# 登录控件asp.net和CS

C# 登录控件asp.net和CS,c#,asp.net,visual-studio-2010,login,login-control,C#,Asp.net,Visual Studio 2010,Login,Login Control,我有一个关于ASP.NET和SQL Server数据库以及使用Visual Studio 2010的问题。问题在于登录控制cs部分 我将我的表单与数据库链接,需要将登录名和密码与数据库中的进行比较,但是行 SqlDataReader rdr = com.ExecuteReader(); 表示“用户”附近的语法有错误 这是一个查询问题吗 你能帮我吗 private bool UserLogin(string userName, string password) { // read th

我有一个关于ASP.NET和SQL Server数据库以及使用Visual Studio 2010的问题。问题在于登录控制cs部分

我将我的表单与数据库链接,需要将登录名和密码与数据库中的进行比较,但是行

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


您可以这样组合这两个命令:

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);

user
是SQL Server中的一个保留关键字——最好不要将其用作表名!如果你坚持使用它,你必须把它放在方括号内:

SqlCommand com = new SqlCommand("SELECT login FROM [user] WHERE userName = @login ", con);

从编译器发布错误消息可能会有所帮助。