我想写一小函数来检测用户登录的,如下,只要传入用户名和密码就可以了. 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"; 这句有问题啊.可是我以前在别的地方可以这样写的,是不是我写错了啊.哪位朋友能帮我看一下吗??谢谢了.....
{
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"; 这句有问题啊.可是我以前在别的地方可以这样写的,是不是我写错了啊.哪位朋友能帮我看一下吗??谢谢了.....
SqlStr = "select * from userlst where u_name='" + UserName + "' and u_pwd='" + UserPwd+"'";
Command.CommandText = SqlStr;我改成这个,也不行啊.可是在查询分析器里执行是正常的啊.
这是什么原因啊.....
Conncetion.Open();
Command.Connection = Conncetion;
换个顺序。
你都是Conncetion,Command对象,有没有实例化呀,
汗颜!!!!!!!!!!
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 子句而言,只有这些子句才使数据表内容发生变化)
我的老是装不了