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

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

 

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

数据库设计:

数据库名: MyDataBase1.mdf

表名: T_Users

表数据:

 

程序代码

[csharp] view plaincopyprint?
  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(@"inDebug")  
  15.                 || dataDir.EndsWith(@"inRelease"))  
  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. }  

转载于:https://www.cnblogs.com/zyj-keyen/archive/2012/07/26/2610065.html

更多相关:

  • CentOS7自带的git版本1.8.3.1,这个版本有点低了。于是决定折腾升级, 实操记录在此: 1、确认你的当前git版本 在终端输入: git --version   2、使用root账号 在终端终入: su root 然后输入root账号的密码,注意linux下输密码时界面是没有变化的   3、配置存储库 启用Wa...

  • 今天做TJU的OJ ,其中一道题是先读入一个字符串,再读入一个整数,循环往复,直到字符串是空,也就是说回车键结束循环。 但是cin对空格和回车都不敏感,都不影响继续读入数据,所以需要一种新的方式检测回车。 方法一:利用getchar()函数 1 //**************************将输入的单词逆序输出*****...

  • 题目描述: 根据输入的运算符对输入的整数进行简单的整数运算。 运算符只会是加+、减-、乘*、除/、求余%、阶乘!六个运算符之一。 输出运算的结果,如果出现除数为零,则输出“error”,如果求余运算的第二个运算数为0,也输出“error”。 输入: 输入为一行。先输入第一个整数,空格输入运算符,然后再空格输入第二个整数,回车结束...

  • 1、调出命令窗口:开始---->运行---->cmd,或者是window+R组合键   2、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是4300,我们拿它来做实验。 3、查看被占用端口对应的PID,输入命令:netstat -aon|findstr "4300",回车,记下最后一位...

  • 关于这个问题其实我很早之前就研究过,只是一直都是弄一次就不管了,下次就忘记怎么弄了,又去查,现在就写个笔记吧。 win8/8.1 在开始的界面输入netplwiz,或者点击win+r打开运行,输入netplwiz,然后回车 会弹出这个框框 然后会然你输入密码,输入之后点击确定就可以了。   winXP/7: 这个系统有点不同 使用...

  • 问题: VS2013VS2017 使用git 总是需要输入账号密码 解决方案:删除原凭证,或者修改原凭证,重新输入一次账号和密码并且选择“记住凭证”即可!   转载于:https://www.cnblogs.com/zhaokunbokeyuan256/p/9583091.html...

  • 提醒:同志们这是记录,视频文件是加密的,请勿下载   基础班第十三期:http://pan.baidu.com/s/1c2GcvKG 密码: 743j   基础班第十四期链接: http://pan.baidu.com/s/1c24AYa8 密码: x2sh   第十五期:    https://pan.baidu.com/share...

  •  公司使用的是Spring-session-redis 需要给Redis配置一个密码 本来我配置密码的方法是  先打开Redis服务  在采用 命令 CONFIG SET requirepass "密码"         AUTH 密码 但是这样配置完密码之后再重启Redis服务密码会重置 也就是说每次打开Redis服务都要重新再配置...

  • 一,wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm 二,yum localinstall mysql57-community-release-el6-8.noarch.rpm 三,yum install mysql-server 四,my...

  • MySQL 的“root”用户默认状态是没有密码的,所以在 PHP 中您可以使用 mysql_connect("localhost","root","") 来连接 MySQL 服务器;如果您想为 MySQL 中的“root”用户设置密码,请在控制台中使用“mysqladmin”命令。例如: 在windows版本的xampp下:.....