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

 

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

数据库设计:

数据库名: 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();
        }
    }
}


 

  • 9
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值