C# 连接SQL数据库使用账号登录应用 带UI

193 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

\

文章为进阶栏目,对代码不做太多的解释,基础可以看基础栏目每一行代码都有解释 在这里插入图片描述

文章主要介绍C#与数据库里的账号连接,密码正确即登录,密码错误返回登录错误信息

C#连接SQL数据库和查询数据功能 数据库配置及下载可以参考这个文章


正文:

先看效果 在这里插入图片描述 用户输入账号,把他输入的账号和密码带到数据库进行比对,如正确弹出登录窗口界面

界面: 在这里插入图片描述

窗体清除边框

在这里插入图片描述 窗口属性设置为None,但这样窗口就无法移动

无边框移动窗体

Point mouseOff;
        //鼠标移动位置变量


        bool
        leftFlag;
        //标签是否为左键


        private void Form1_MouseMove(object sender, MouseEventArgs e) 

        {
            if
            (leftFlag)

            {
                Point mouseSet = Control.MousePosition;

                mouseSet.Offset(mouseOff.X, mouseOff.Y);
                //设置移动后的位置

                Location = mouseSet;
            }

        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if
            (e.Button == MouseButtons.Left)

            {
                mouseOff = new Point(-e.X, -e.Y);


                //得到变量的值

                leftFlag = true ;

                //点击左键按下时标注为true;
            }
        }

        private void  Form1_MouseUp( object  sender, MouseEventArgs e)

        {
           if
            (leftFlag)
            {
                leftFlag =
                false
                ;
                //释放鼠标后标注为false;
            }

        }

然后设置窗口对应的事件 在这里插入图片描述 然后拖出来两个文本框和几个标签,按我上面界面设置Text即可, 这里给账号文本框的name设置:user, 密码name:password

设置密码长度和内容不可见

对文本框属性进行设置, 设置为:● 也可以使用*代替、 长度就是最大只能输入10个字符 在这里插入图片描述

退出按钮和鼠标经过事件

private void close_Click(object sender, EventArgs e)
        {
            Environment.Exit(0);//退出
        }
  private void close_MouseLeave(object sender, EventArgs e)
        {
            Color a = Color.White;
            close.ForeColor = a;
            //鼠标离时
        }
 private void label5_MouseMove(object sender, MouseEventArgs e)
        {
            Color a = Color.Black;
            close.ForeColor = a;
            //鼠标经过时
        }

设置数据库

表名为:user1

表的属性 在这里插入图片描述 数据是账号和密码 在这里插入图片描述


连接数据库

点击登录时连接数据库进行比对

 private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                a.Password = "xxxx";
                a.UserID = "xxxx";
                a.DataSource = "xxxx";
                a.InitialCatalog = "xxxx";
                SqlConnection b = new SqlConnection(a.ToString());

                b.Open();
                string sql = "SELECT * FROM user1 WHERE userid = '" + user.Text + "' AND password='" + password.Text + "'";


                SqlCommand d = new SqlCommand(sql, b);


                SqlDataReader du = d.ExecuteReader();

                string l = "";

                user jm =new user();
                while (du.Read())
                {
                    l = du["userid"].ToString() + du["password".ToString()];                 

                }
                du.Close();            
                if (l == "")
                {
                    MessageBox.Show("账号或密码错误");
                    return;
                }
                try
                {
                   FileStream file = new FileStream(@fileDir, FileMode.Create);
                    user name = new user();
                    {
                        name.user1 = this.user.Text.Trim();
                        name.password1 = this.password.Text.Trim();
                    }
                    BinaryFormatter c = new BinaryFormatter(); //二进制格式化器
                     c.Serialize(file, name);
                     file.Close();
                }
                catch {                               
                }
                string 窗口id查询 = "select * from user1 where userid ='"+user.Text+ "'";
                SqlCommand 窗口id创建 = new SqlCommand(窗口id查询, b);
                SqlDataReader 窗口id执行 = 窗口id创建.ExecuteReader();             
                while (窗口id执行.Read()) {
                    jmuser = 窗口id执行["username"].ToString();                  
                }
                窗口id执行.Close();
                b.Close();
                登录成功界面 a2 = new 登录成功界面();
                a2.Show();
                this.Hide();//隐藏现在这个窗口
            }
            catch
            {


            }
           

        }

纯手打,点个赞呗~