不知道今天晚上还有没有希望了,在线等一下吧!
string constr=ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection myConnection =new  SqlConnection(constr);
//从数据库中查找符合条件的记录
SqlCommand cmd_myConnection=new SqlCommand();
cmd_myConnection.CommandText="SELECT * FROM User WHERE(name = @name)AND(pwd = @pwd);";
cmd_myConnection.Connection=myConnection;
cmd_myConnection.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar,50));
cmd_myConnection.Parameters["@name"].Value =this.username.Text;
cmd_myConnection.Parameters.Add(new SqlParameter("@pwd", SqlDbType.VarChar,50));
cmd_myConnection.Parameters["@pwd"].Value = this.password.Text;
myConnection.Open();System.Data.SqlClient.SqlDataReader dreader;
dreader = cmd_myConnection.ExecuteReader();问题现象:WHERE(name = @name)AND(pwd = @pwd);";参数总是传不过去错误提示:
在关键字 'User' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在关键字 'User' 附近有语法错误。
可是我觉得Sql没有错误啊?改成:SELECT COUNT(*) FROM User WHERE(name = @name)AND(pwd = @pwd)还是错
大家看看怎么改一下?

解决方案 »

  1.   

    小case 你为什么要用User呢微软都不敢用呀!
    它是SQLSERVER保留的KeyWord改改吧 实在钟情只能用[User]
      

  2.   

    cmd_myConnection.CommandText="SELECT * FROM [User] WHERE (name = @name) AND (pwd = @pwd);";
      

  3.   

    对啊,USER是保留的哦。换个啦
      

  4.   


    user在SQL中关键子,然下面的SQL改写在。
    SELECT * FROM User WHERE(name = @name)AND(pwd = @pwd)
    SELECT * FROM [User] WHERE [name] = @name AND pwd = @pwd
      

  5.   

    SELECT * FROM [User] WHERE (name = @name) AND (pwd = @pwd)没有分号!!