using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace 用户登陆
{
class Program
{
static void Main(string[] args)
{
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
Console.WriteLine("请输入用户名:");
string UserName = Console.ReadLine();
Console.WriteLine("请输入密码:");
string PassWord = Console.ReadLine();
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True");
con.Open();
//Console.WriteLine("打开数据库连接成功");
SqlCommand cmd=con.CreateCommand();
cmd.CommandText = "select * from T_users where username='"+UserName+"'";
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
//用户名存在
string dbpassword = reader.GetString(reader.GetOrdinal("password"));
if (PassWord == dbpassword)//我调试的时候看的是PassWord == dbpassword的,但是输出的时候输出的是密码错误,登陆失败,以前也是这样写的,这次就遇到这样的问题了。
{
Console.WriteLine("登陆成功!");
}
else
{
Console.WriteLine("密码错误,登陆失败!");
}
}
else
{
Console.WriteLine("用户名不存在");
}
Console.ReadKey();
}
}
}
debug 下看下是否有特殊符号,比较下2个变量的长度
输出了什么?
数据库中的用户密码是明码存储的吗??
我估计你数据库中存在同名的user
你的数据库中密码是否加密了?你转换一下,再看看数据库,或者是否有重复存储,另外你看一下bug文件是否有特殊符号