您的位置:首页 > 数据库

[C#] 连接数据库并验证用户名和密码

2012-04-05 14:33 381 查看
连接数据库, 请根据用用户的输入和数据库里的信息进行比较, 判断用户名和密码是否正确

数据库设计:

数据库名: MyDataBase1.mdf

表名: T_Users



表数据:



程序代码

using System;
using System.Collections.Generic;
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);
}

//定义用户名和密码变量
string username, password;

//提示用户输入用户名和密码
Console.WriteLine("请输入用户名:");
username = Console.ReadLine();
Console.WriteLine("请输入密码:");
password = Console.ReadLine();

//使用创建数据库连接
using(SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDataBase1.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();//打开数据库

//创建数据库查询命令
using(SqlCommand cmd = conn.CreateCommand())
{
//查询命令为:查询UserName等于输入的用户名
cmd.CommandText = "select * from T_Users where UserName='" + username + "'";

//将查询到的数据保存在reader这个变量里
using(SqlDataReader reader = cmd.ExecuteReader())
{
//如果reader.Read()的结果不为空, 则说明输入的用户名存在
if(reader.Read())
{
/*从数据库里查询出和用户相对应的PassWorld的值
*reader.GetOrdinal("PassWord")的作用是得到PassWord的为这行数据中的第几列,返回回值是int
*reader.GetString()的作用是得到第几列的值,返回类型为String.
*/
string dbpassword = reader.GetString(reader.GetOrdinal("PassWord"));

//比较用户输入的密码与从数据库中查询到的密码是否一至
if(password==dbpassword)
{
//如果相等,就登录成功
Console.WriteLine("登录成功!");
}
else
{
//如果不相等,说明密码不对
Console.WriteLine("输入的密码有误!");
}

}
else
{
//说明输入的用户名不存在
Console.WriteLine("输入的用户名不存在!");
}
}

}

}
Console.ReadKey();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐