c#第四次作业(Mysql与winfrom)

咳咳,好久没写了,刚刚做完这次作业,之前有点忙。。。

这次其实就是Mysql与Winform连接,说实话,单纯是连接没有什么意思,于是我就干脆做了整个系统(算是大概上说得过去的半成品),包括什么密码认证啊,登陆啊,注册啊,什么对于数据库表的增删改查啊这些……

首先把,做点笔记,关于美化窗口的一些总结:

1.图标的设置:在属性中的外观中找到icon,选择一张图标文件,记得格式是.icon的。

2.关于背景图案的设置:在属性中有一个backgroundimage的属性,选择后浏览本地图片或者直接把图片导入到项目中(个人推荐导入到项目中)。

3.关于标签与背景颜色统一:

4.关于设置完图片后在拉伸过程中需要图片适应窗体大小,这时选择属性BackgroundLayout选择stretch就可以了。

5.拖动窗体时会出现窗体闪烁的情况,这时候在Form_load那里添加这样一行代码:

这就是关于美化窗体的一部分操作的总结,总之,只是最基本的一些,我做的很简单,所以也没有非常高级的美化手段。

接下来是正题,先上登录界面吧!


这个东西呢输入账号密码就行了,密码想要隐藏的话就在属性UseSystemPasswordChar属性中选择:true

输入的话效果就是这样而已:

登录进去后会提示:

登陆成功了,点击确定进入这个界面:


好吧,那个Regist按钮是一个进入注册账户的界面,其实这个设计比较不合理,但我觉得放在一开始的登录界面更加不科学,所以就丢这里了,管理员就可以注册嘛,我的理解就是这样的,各位请不要吐槽~

点击Show按钮出现:


数据库的资料就被调出来了,接下来我们试一下Select按钮,也就是查询了,按性别查询,比如:


当然,你也可以按照班级查询,比如查询信管1121:


你也可以按学号查询,按姓名查询等,就是基本功能了。

当然,插入修改这些也可以,比如插入一条信息:


咳咳,性别是秀吉,这是个梗,各位懂的,嘿嘿~

不对,他应该是个男的,好吧,修改性别:


成功,哎,这条记录好无聊,删了吧~


点击Regist按钮,打开注册账户的界面:


显示一下吧,所有的账户:


如果想添加一个账户和密码呢?


算了,不要第二个了,删了吧:


删除了~

试一下新用户的登陆吧:


成功!介绍完了,我们来看一下代码吧:

先介绍一下登陆界面的:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace testmysql
{
    public partial class login : Form
    {
        public login()
        {
            InitializeComponent();
            label1.BackColor = Color.Transparent;
            label2.BackColor = Color.Transparent;
            label3.BackColor = Color.Transparent;
        }

        private void toUser_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string user = toUser.Text.ToString();
            string pwd = toPass.Text.ToString();
            if (user == "" )
            {
                MessageBox.Show("Please input user's name and password!");
            }
            else 
            {
               // string sql = "select  SYSUSER_UN,SYSUSER_PWD   from list_class where  SYSUSER_UN='" + toUser.Text + "'and  SYSUSER_PWD='" + toPass.Text + "'";
                //string sql = " select * from list_class ;";
                MySqlConnection conn = new MySqlConnection("server=localhost;Persist Security Info=True;User id=root;database=homework;password=''");
                conn.Open();
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = " select * from Admin where UName='"+toUser.Text+"'and Password = '"+toPass.Text+"'";
                cmd.Parameters.Add(new MySqlParameter("userID", toUser));
                cmd.Parameters.Add(new MySqlParameter("PassWord",toPass));
                MySqlDataReader dr = cmd.ExecuteReader();
               if (dr.Read())
               {
                   MessageBox.Show("Login successfully!");
                   this.Hide();                    
                   Form1 form = new Form1();
                   form.ShowDialog();
                   this.Close();
               }
               else
               {
                 MessageBox.Show("User's name or password is wrong,please try again!");
               }
             dr.Close();
             conn.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Login_Load(object sender, EventArgs e)
        {

        }

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

其实这么多东西,重点的就只有:



这一段呢,很明显MysqlConnection就是连接数据库的了,里面包括服务器,mysql的登陆名,密码等等一堆东西,coon.Open();就是打开数据库,这个才是真正的打开这个数据库的链接,接下来的MySqlCommand就是用于创建对象cmd去查找用户名和密码,最后呢再进行认证,认证用到MySqlDataReader类,创建的dr对象调用认证,认证通过的话就关闭掉我们的登录界面显示Form1界面,也就是database的界面,如果输入的用户名密码不正确,就提示你重新输入,这段代码非常实用,可以用于做登陆界面。

那么接下来就来说一下我们的主界面:

先上代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Data.OleDb;
using System.Data.SqlClient; 

namespace testmysql
{
    public partial class Form1 : Form
    {
        string sq = "";
        public Form1()
        {
            InitializeComponent();
            Id.BackColor = Color.Transparent;
            Sno.BackColor = Color.Transparent;
            Sname.BackColor = Color.Transparent;
            Class.BackColor = Color.Transparent;
            SSex.BackColor = Color.Transparent;
        }
        private void show_Click(object sender, EventArgs e)
        {
           string constr = "server=localhost;database=homework;User id=root;";
           MySqlConnection conn = new MySqlConnection(constr);
           conn.Open();        
           //MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
           DataTable dt = new DataTable();
           sq = "select * from list_class";
           MySqlDataAdapter sda2 = new MySqlDataAdapter(sq, conn);
           dataGridView1.DataSource = dt;
           //sda.Fill(dt);
           sda2.Fill(dt);
          // dataGridView1.DataSource = dt;
           conn.Close();
        }

        private void Add_Click(object sender, EventArgs e)
        {
            try
            {
                string Id = textBox5.Text;
                string Sno = textBox1.Text;
                string Sname = textBox2.Text;
                string Class = textBox3.Text;
                string Ssex = textBox4.Text;
                sq = "insert into list_class values(" + Id + ",'" + Sno + "','" + Sname + "','" + Class + "','" + Ssex + "')";
                string constr = "server=localhost;database=homework;User id=root;";
                MySqlConnection conn = new MySqlConnection(constr);
                conn.Open();
                MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                conn.Close();
            }
            catch { MessageBox.Show("error!"); }
        }


        private void Delete_Click(object sender, EventArgs e)
        {
            string Id = textBox5.Text;
            sq = "delete from list_class where Id = '"+Id+"'";
            string constr = "server=localhost;database=homework;User id=root;";
            MySqlConnection conn = new MySqlConnection(constr);
            conn.Open();
            MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            conn.Close();
        }

        private void Select_Click(object sender, EventArgs e)
        {
            try
            {
                string Sno = textBox1.Text;
                string Id = textBox5.Text;
                string Sname = textBox2.Text;
                string Class = textBox3.Text;
                string Ssex = textBox4.Text;
                if (Sno != "")
                {
                    sq = "select * from list_class where Sno='" + Sno + "'";
                }
                else if (Id != "")
                {
                    sq = "select * from list_class where Id='" + Id + "'";
                }
                else if (Class != "")
                {
                    sq = "select * from list_class where Class='" + Class + "'";
                }
                else if (Sname != "")
                {
                    sq = "select * from list_class where Sname='" + Sname + "'";
                }
                else if (Ssex != "")
                {
                    sq = "select * from list_class where Ssex='" + Ssex + "'";
                }
                string constr = "server=localhost;database=homework;User id=root;";
                MySqlConnection conn = new MySqlConnection(constr);
                conn.Open();
                MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                dataGridView1.DataSource = dt;
                conn.Close();
            }
            catch { MessageBox.Show("error!"); }
        }

        private void Update_Click(object sender, EventArgs e)
        {
            try
            {
                string Sno = textBox1.Text;
                string Id = textBox5.Text;
                string Sname = textBox2.Text;
                string Class = textBox3.Text;
                string Ssex = textBox4.Text;
                if (Id != "")
                {
                    if (Sname != "")
                    {
                        sq = "update list_class set Sname= '" + Sname + "' where Id = '" + Id + "'";
                    }
                    else if (Class != "")
                    {
                        sq = "update list_class set Class= '" + Class + "' where  Id = '" + Id + "'";
                    }
                    else if (Ssex != "")
                    {
                        sq = "update list_class set Ssex= '" + Ssex + "' where Id = '" + Id + "'";
                    }
                }
                else if (Sno != "")
                {
                    if (Sname != "")
                    {
                        sq = "update list_class set Sname= '" + Sname + "' where Sno = '" + Sno + "'";
                    }
                    else if (Class != "")
                    {
                        sq = "update list_class set Class= '" + Class + "' where Sno = '" + Sno + "'";
                    }
                    else if (Ssex != "")
                    {
                        sq = "update list_class set Ssex= '" + Ssex + "' where Sno = '" + Sno + "'";
                    }
                }
                string constr = "server=localhost;database=homework;User id=root;";
                MySqlConnection conn = new MySqlConnection(constr);
                conn.Open();
                MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                conn.Close();
            }
            catch { MessageBox.Show("Error!"); }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //防止加载背景图案时窗口闪烁,同时需要把图片放于项目文件中
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);
        }

        private void Regist_Click(object sender, EventArgs e)
        {
            Administator ad = new Administator();
            ad.ShowDialog();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

其实就是增删改查的功能,连接数据库那块非常简单:


连接照样是MySqlConnection,然后是哪个字符串:服务器,数据库,账号,密码。由于我没有设密码所以我就把密码给省略了哈哈~

DataTable是一个表类,这个类用于填充整个dataGridView1,而MysqlDataAdapter类呢则是用于执行sql语句的,这样就可以操作数据库了~

最后要关闭,这是出于对数据库安全的考虑~

上面的很多代码都是关于增删改查的,我把sql语句存放在一个string对象sq中,通过sq来对数据库进行操作,其中关于更新,我只有用ID或者姓名来进行更新,这样比较能确保修改的是单条记录,而就用了if语句去进行判断是否在textBox有输入字符串,有的话就将字符串加上sql语句存放在sq中,最后在使用sq来对数据库进行操作,这就能实现了。

对了,还有那个注册的:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace testmysql
{
    public partial class Administator : Form
    {
        public Administator()
        {
            InitializeComponent();
            UID.BackColor = Color.Transparent;
            UName.BackColor = Color.Transparent;
            Password.BackColor = Color.Transparent;
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
        string sq = "";

        private void Show_Click(object sender, EventArgs e)
        {
            string constr = "server=localhost;database=homework;User id=root;";
            MySqlConnection conn = new MySqlConnection(constr);
            conn.Open();
            DataTable dt = new DataTable();
            sq = "select * from Admin";
            MySqlDataAdapter sda2 = new MySqlDataAdapter(sq, conn);
            dataGridView1.DataSource = dt;
            sda2.Fill(dt);
            conn.Close();
        }

        private void Add_Click(object sender, EventArgs e)
        {
            try
            {
                string UID = textBox3.Text;
                string UName = textBox1.Text;
                string Password = textBox2.Text;
                sq = "insert into admin values(" + UID + ",'" + UName + "','" + Password + "')";
                string constr = "server=localhost;database=homework;User id=root;";
                MySqlConnection conn = new MySqlConnection(constr);
                conn.Open();
                MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                conn.Close();
                MessageBox.Show("Add successfully!");
            }
            catch { MessageBox.Show("error!"); }
        }

        private void Delete_Click(object sender, EventArgs e)
        {
            string UID = textBox3.Text;
            sq = "delete from admin where UID = '" + UID + "'";
            string constr = "server=localhost;database=homework;User id=root;";
            MySqlConnection conn = new MySqlConnection(constr);
            conn.Open();
            MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);         
            conn.Close();
            MessageBox.Show("Delete successfully!");
        }

        private void Update_Click(object sender, EventArgs e)
        {
            try
            {
                string UID = textBox3.Text;
                string UName = textBox1.Text;
                string Password = textBox2.Text;
                if (UID != "")
                {
                    if (UName != "")
                    {
                        sq = "update admin set UName= '" + UName + "' where UID = '" + UID + "'";
                    }
                    else if (Password != "")
                    {
                        sq = "update admin set Password= '" + Password + "' where  UID = '" + UID + "'";
                    }
                }

                string constr = "server=localhost;database=homework;User id=root;";
                MySqlConnection conn = new MySqlConnection(constr);
                conn.Open();
                MySqlDataAdapter sda = new MySqlDataAdapter(sq, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                conn.Close();
                MessageBox.Show("Update successfully!");
            }
            catch { MessageBox.Show("Error!"); }
        }

        private void Administator_Load(object sender, EventArgs e)
        {
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);   
        }
    }
}

这个也是和From1一个道理的,所以在这里也就不多说了。

总之东西都是一样的,换汤不换药,算法才是本质,只要能运用算法,就算是我不会的c#也还是能勉强东拼西凑做出来的。

各位不要吐槽,我真的不会c#,都是查资料啊什么做出来的,耗时可能有二十几个小时,总之做这么水的一个东西还是求各位大神不要吐槽了,小弟甘拜下风!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值