连接数据库, 请根据用用户的输入和数据库里的信息进行比较, 判断用户名和密码是否正确
数据库设计:
数据库名: 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();
- }
- }
- }