我想写一小函数来检测用户登录的,如下,只要传入用户名和密码就可以了.         public void LoginIn(string UserName,string UserPwd)
    {
        Conncetion.ConnectionString = Connstr;
        SqlStr = "select * from userlst where u_name=@username and u_pwd=@userpwd";
        Command.CommandText = SqlStr;
        SqlParameter username = new SqlParameter("@username", SqlDbType.VarChar, 50);
        SqlParameter userpwd = new SqlParameter("@userpwd", SqlDbType.VarChar, 50);
        username.Value = "benboy";//UserName;
        userpwd.Value = "12345678"; //UserPwd;
        Command.Parameters.Add(username);
        Command.Parameters.Add(userpwd);
        Conncetion.Open();
        Command.Connection = Conncetion;
        int count=Command.ExecuteNonQuery();
        HttpContext.Current.Response.Write("   "+"count= "+count);
        HttpContext.Current.Response.Write( UserName+"___________"+UserPwd);    }但是问题是无论我是设定某一个值还是用参数执行都返回-1,好像是@username,@userpwd没有被调用吧,是不是 SqlStr = "select * from userlst where u_name=@username and u_pwd=@userpwd"; 这句有问题啊.可是我以前在别的地方可以这样写的,是不是我写错了啊.哪位朋友能帮我看一下吗??谢谢了.....

解决方案 »

  1.   

    //SqlStr = "select * from userlst where u_name=@username and u_pwd=@userpwd";
            SqlStr = "select * from userlst where u_name='" + UserName + "' and u_pwd='" + UserPwd+"'";
            Command.CommandText = SqlStr;我改成这个,也不行啊.可是在查询分析器里执行是正常的啊.
    这是什么原因啊.....
      

  2.   

    SqlParameter username 中username同@username类似。改为SqlParameter pa—username 
    Conncetion.Open();
            Command.Connection = Conncetion;
    换个顺序。
    你都是Conncetion,Command对象,有没有实例化呀,
    汗颜!!!!!!!!!!
      

  3.   

    关于SqlCommand.ExecuteNonQuery 方法参见MSDN:
        SqlCommand.ExecuteNonQuery()对连接执行 Transact-SQL 语句并返回受影响的行数。备注:
        您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。    虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。    对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。    使用查询子句"select * from userlst where u_name=@username and u_pwd=@userpwd"返回结果当然是-1了。(“所影响行数”仅针对UPDATE、INSERT 和 DELETE 子句而言,只有这些子句才使数据表内容发生变化)
      

  4.   

    楼上的MSDN在哪下载的...
    我的老是装不了
      

  5.   

    MSDN 堞里面的就好拉,下载太大了
      

  6.   

    或者下载vs2003光碟的iso文件,里面有msdn