在数据库中以Augus的登陆名创建了一个QQDB数据库,编写C#程序访问该数据库,第一步进行用户名和密码验证总是不能通过,用户名和密码绝对没有输错,因为在SQL Server2008上可以用这个用户名和密码登陆并操作,只是在C#程序中连接数据库通不过验证.相关代码如下:
这是验证登录名和密码的方法
public bool CheckAdminInfo(string adminName, string passWord, ref int flag)//flag做标识位,1表示访问数据库异常
{
SqlConnection conn = new SqlConnection(strCon);//建立与数据库的连接,字符串strCon已定义好
try
{
//拼接T-SQL字符串
StringBuilder sb = new StringBuilder();
sb.AppendLine("select count(*)");
sb.AppendLine("from Admin");
sb.AppendLine("where LoginId='" + adminName + "' and LoginPwd='" + passWord + "'");
conn.Open();
SqlCommand comm = new SqlCommand(sb.ToString(), conn); int commReturn = (int)comm.ExecuteScalar();
if (commReturn != 1)
{
return false;
}
else
{
return true;
}
}
catch (Exception)
{
flag = 1;//访问数据库异常,flag置为1
return false;
}
finally
{
conn.Close();
}
}用以下代码调用上面的方法,返回值总是false,用户名密码绝对没有输错!
Console.WriteLine("请输入用户名:");
string userName = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
if (userName.Equals(string.Empty)||password.Equals(string.Empty))
{
return false;
}
else
{
return _dbHandle.CheckAdminInfo(userName,password,ref _flag);
}菜鸟求帮助,求解释%>_<%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
这是验证登录名和密码的方法
public bool CheckAdminInfo(string adminName, string passWord, ref int flag)//flag做标识位,1表示访问数据库异常
{
SqlConnection conn = new SqlConnection(strCon);//建立与数据库的连接,字符串strCon已定义好
try
{
//拼接T-SQL字符串
StringBuilder sb = new StringBuilder();
sb.AppendLine("select count(*)");
sb.AppendLine("from Admin");
sb.AppendLine("where LoginId='" + adminName + "' and LoginPwd='" + passWord + "'");
conn.Open();
SqlCommand comm = new SqlCommand(sb.ToString(), conn); int commReturn = (int)comm.ExecuteScalar();
if (commReturn != 1)
{
return false;
}
else
{
return true;
}
}
catch (Exception)
{
flag = 1;//访问数据库异常,flag置为1
return false;
}
finally
{
conn.Close();
}
}用以下代码调用上面的方法,返回值总是false,用户名密码绝对没有输错!
Console.WriteLine("请输入用户名:");
string userName = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
if (userName.Equals(string.Empty)||password.Equals(string.Empty))
{
return false;
}
else
{
return _dbHandle.CheckAdminInfo(userName,password,ref _flag);
}菜鸟求帮助,求解释%>_<%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if (userName.Equals(string.Empty)||password.Equals(string.Empty))
{
return false;
}
不会是进入这里return false了吧。
还有你是console程序?要从cmd下输入用户名和密码?
select count(*)from adminwhere xxxx
+1 要注意sql语句中的空格和引号是否使用正确
select count(*)
from Admin
where LoginId=' adminName ' and LoginPwd=' passWord '
也就是中间分行的,而不是你们说的连着的.
int commReturn = (int)comm.ExecuteScalar();
返回的总是0
也就是数据库系统表中没有找到与我输入的用户名和密码对应的信息
这我就糊涂了
明明用这个用户名和密码是可以登陆数据库并且增删改查的,而且连接的这个数据库还是我以这个用户名登陆建立的,晕了......