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

 

连接数据库, 请根据用用户的输入和数据库里的信息进行比较, 判断用户名和密码是否正确

数据库设计:

数据库名: MyDataBase1.mdf

表名: T_Users

表数据:

 

程序代码

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Data.SqlClient;  
  5.   
  6. namespace 登录  
  7. {  
  8.     class Program  
  9.     {  
  10.         static void Main(string[] args)  
  11.         {  
  12.             //下面这段文字的作用已经在其它博文中解释!   
  13.             string dataDir = AppDomain.CurrentDomain.BaseDirectory;  
  14.             if (dataDir.EndsWith(@"\bin\Debug\")  
  15.                 || dataDir.EndsWith(@"\bin\Release\"))  
  16.             {  
  17.                 dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;  
  18.                 AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);  
  19.             }  
  20.   
  21.             //定义用户名和密码变量   
  22.             string username, password;  
  23.   
  24.             //提示用户输入用户名和密码   
  25.             Console.WriteLine("请输入用户名:");  
  26.             username = Console.ReadLine();  
  27.             Console.WriteLine("请输入密码:");  
  28.             password = Console.ReadLine();  
  29.   
  30.             //使用创建数据库连接   
  31.             using(SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDataBase1.mdf;Integrated Security=True;User Instance=True"))  
  32.             {  
  33.                 conn.Open();//打开数据库   
  34.                   
  35.                 //创建数据库查询命令   
  36.                 using(SqlCommand cmd = conn.CreateCommand())  
  37.                 {  
  38.                     //查询命令为:查询UserName等于输入的用户名   
  39.                     cmd.CommandText = "select * from T_Users where UserName='" + username + "'";  
  40.   
  41.                     //将查询到的数据保存在reader这个变量里   
  42.                     using(SqlDataReader reader = cmd.ExecuteReader())  
  43.                     {  
  44.                         //如果reader.Read()的结果不为空, 则说明输入的用户名存在   
  45.                         if(reader.Read())  
  46.                         {  
  47.                             /*从数据库里查询出和用户相对应的PassWorld的值 
  48.                              *reader.GetOrdinal("PassWord")的作用是得到PassWord的为这行数据中的第几列,返回回值是int 
  49.                              *reader.GetString()的作用是得到第几列的值,返回类型为String. 
  50.                              */  
  51.                             string dbpassword = reader.GetString(reader.GetOrdinal("PassWord"));  
  52.                               
  53.                             //比较用户输入的密码与从数据库中查询到的密码是否一至   
  54.                             if(password==dbpassword)  
  55.                             {  
  56.                                 //如果相等,就登录成功   
  57.                                 Console.WriteLine("登录成功!");  
  58.                             }  
  59.                             else  
  60.                             {  
  61.                                 //如果不相等,说明密码不对   
  62.                                 Console.WriteLine("输入的密码有误!");  
  63.                             }  
  64.   
  65.                         }  
  66.                         else  
  67.                         {  
  68.                             //说明输入的用户名不存在   
  69.                             Console.WriteLine("输入的用户名不存在!");  
  70.                         }  
  71.                     }  
  72.   
  73.                 }  
  74.   
  75.             }        
  76.             Console.ReadKey();  
  77.         }  
  78.     }  
  79. }  
posted @ 2012-07-26 14:54  keyen  阅读(28671)  评论(1编辑  收藏  举报