本篇的内容主要是,如何使用Vs设计窗体应用,同时连接mysql数据库,进行基础的增删改查操作。本人Vs版本为2019版。

一、程序窗体界面展示

        如下图所示,其中使用了textBox、label、comboBox和dataGridView几种控件。其dataGridView主要是用于展示我们的数据信息的控件。

        同时要说明,此案例并不全面,文本框控制只是在某种限定下可以操作,但是如果使用sql语句操作,则没有任何问题。

二、Vs使用mysql数据的相关说明

1.创建数据连接

Step.1

 Step.2

 Step.3

 Step.4

 Step.5

 Step.6

 Step.7

如果没有mysql选项

下载驱动:(这里下载第二个就可以了)

1.mysql-connector-odbc-8.0.20-winx64.msi   mysql odbc驱动

2.mysql-for-visualstudio-1.2.9.msi Visual Studio连接MySQL工具

3.mysql-connector-net-8.0.20.msi  mysql数据库.net开发驱动

Step.8

 Step.9

 Step.10

Step.11

 Step.12

         安装完成后,不用设置任何东西,但是保证你用过mysql,并且建立过数据库连接。然后直接打开VS。

 Step.13

 

2、添加mysql的依赖包

 Step.14

Step.15

三、功能说明

1、连接数据库

这里在连接的时候,个人娱乐,会默认查出welcome表。

 【代码段】

        private void button1_Click(object sender, EventArgs e)
        {
            
            string connstr = @"database = school; Password = 20001017; User ID = root; server = localhost; pooling = false; charset = utf8";
            //在外层定义了
            conn = new MySqlConnection(connstr);
            conn.Open();
            MessageBox.Show("连接成功");

            //查询welcom表
            string sql = "select* from welcome";
            adapter = new MySqlDataAdapter(sql, conn);
            //数据集、本地微型数据库可以存储多张表。
            set = new DataSet();
            //从数据库的stuinfo表中取出数据
            adapter.Fill(set, "welcome");
            //将取出的数据做为dataGridView1的数据源
            dataGridView1.DataSource = set;
            dataGridView1.DataMember = "welcome";
        }

2、查询

(1)查询所有内容

        未选择表时,无法查询。

        选择员工表,点击查询

(2)按照工号查询

        输入工号,然后查询

(3)SQL语句查询

 【工号和sql都有语句时】

 【代码】

        private void button2_Click(object sender, EventArgs e)
        {
            if(conn==null)
            {
                MessageBox.Show("请建立连接!");
                return;
            }

            if (comboBox1.Text == "")
            {
                MessageBox.Show("请选择一张表");
                return;
            }

            if(textBox1.Text == "" && textBox7.Text == "")
            {
                string sql = "select* from "+comboBox1.Text;
                adapter = new MySqlDataAdapter(sql, conn);
                //数据集、本地微型数据库可以存储多张表。
                set = new DataSet();
                //从数据库的stuinfo表中取出数据
                adapter.Fill(set, "welcome");
                //将取出的数据做为dataGridView1的数据源
                dataGridView1.DataSource = set;
                dataGridView1.DataMember = "welcome";
            }else if(textBox1.Text != "" && textBox7.Text != "")
            {
                MessageBox.Show("请选择按照主键值查询或者sql命令查询");
                return;
            }else if(textBox1.Text != "" && textBox7.Text == "")
            {
                string sql = "select * from " + comboBox1.Text + " where "+label1.Text+" = "+'"'+textBox1.Text+'"';
                Console.WriteLine(sql);
                adapter = new MySqlDataAdapter(sql, conn);
                //数据集、本地微型数据库可以存储多张表。
                set = new DataSet();
                //从数据库的stuinfo表中取出数据
                adapter.Fill(set, "welcome");
                //将取出的数据做为dataGridView1的数据源
                dataGridView1.DataSource = set;
                dataGridView1.DataMember = "welcome";

            }else if(textBox1.Text == "" && textBox7.Text != "")
            {
                string sql = textBox7.Text;
                Console.WriteLine(sql);
                adapter = new MySqlDataAdapter(sql, conn);
                //数据集、本地微型数据库可以存储多张表。
                set = new DataSet();
                //从数据库的stuinfo表中取出数据
                adapter.Fill(set, "welcome");
                //将取出的数据做为dataGridView1的数据源
                dataGridView1.DataSource = set;
                dataGridView1.DataMember = "welcome";
            }


        }

3、增加

(1) 未选择增加方式时

(2)文本框增加

         其中,重置可以清除文本框,点击查询即可查询所有。

(3)sql增加

 “1208“是中途增加了一条,故多了一条。

 【代码】

       private void button3_Click(object sender, EventArgs e)
        {
            int result = 0;

            if (conn == null)
            {
                MessageBox.Show("请建立连接!");
                return;
            }

            try
            {
                if (textBox1.Text != "" && textBox7.Text == "")
                {
                    string sql = "insert into " + comboBox1.Text + "(" + label1.Text + "," + label2.Text + "," + label3.Text + "," + label4.Text + "," + label5.Text + "," + label6.Text + ")" + " values(" + '"' + textBox1.Text + '"' + "," + '"' + textBox2.Text + '"' + "," + '"' + textBox3.Text + '"' + "," + '"' + textBox4.Text + '"' + "," + '"' + textBox5.Text + '"' + "," + '"' + textBox6.Text + '"' + ")";
                    //数据集、本地微型数据库可以存储多张表。
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    result = cmd.ExecuteNonQuery();
                }
                else if (textBox1.Text == "" && textBox7.Text != "")
                {
                    string sql = textBox7.Text;
                    //数据集、本地微型数据库可以存储多张表。
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    result = cmd.ExecuteNonQuery();
                }
                else if (textBox1.Text == "" && textBox7.Text == "")
                {
                    MessageBox.Show("请选择按照主键值删除或者sql命令增加!");
                    return;
                }

            }
            catch(Exception)
            {
                MessageBox.Show("操作失败,请检查操作或数据表");
            }

            if (result == 0)
            {
                MessageBox.Show("操作失败");
            }
            else
            {
                MessageBox.Show("增加成功!");
            }
        }

4、删除

(1)文本框以主键值删除

(2)sql删除

 【代码】

  private void button4_Click(object sender, EventArgs e)
        {
            int result=0;

            if (conn == null)
            {
                MessageBox.Show("请建立连接!");
                return;
            }


            if (textBox1.Text != "" && textBox7.Text == "")
            {
                string sql = "delete from " + comboBox1.Text + " where " + label1.Text + "=" + '"' + textBox1.Text + '"';
                //数据集、本地微型数据库可以存储多张表。
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                result = cmd.ExecuteNonQuery();
            }else if(textBox1.Text == "" && textBox7.Text != "")
            {
                string sql = textBox7.Text;
                //数据集、本地微型数据库可以存储多张表。
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                result = cmd.ExecuteNonQuery();
            }else if(textBox1.Text == "" && textBox7.Text == "")
            {
                MessageBox.Show("请选择按照主键值删除或者sql命令删除!");
                return;
            }
            

            if (result == 0)
            {
                MessageBox.Show("操作失败");
            }
            else
            {
                MessageBox.Show("删除成功!");
            }


        }

5、修改

(1)文本框修改

(2)Sql修改

这里失误忘记设置条件了!

【代码】

 private void button5_Click(object sender, EventArgs e)
        {
            if (conn == null)
            {
                MessageBox.Show("请建立连接!");
                return;
            }

            int result = 0;

            if (conn == null)
            {
                MessageBox.Show("请建立连接!");
                return;
            }

            try
            {
                if (textBox1.Text != "" && textBox7.Text == "")
                {
                    string sql = "update " + comboBox1.Text + " set " +
                        label2.Text + " = " + '"' + textBox2.Text + '"' + "," +
                        label3.Text + " = " + '"' + textBox3.Text + '"' + "," +
                        label4.Text + " = " + '"' + textBox4.Text + '"' + "," +
                        label5.Text + " = " + '"' + textBox5.Text + '"' + "," +
                        label6.Text + " = " + '"' + textBox6.Text + '"' + " " +
                        " where " + label1.Text + " = " + '"' + textBox1.Text + '"';
                    //数据集、本地微型数据库可以存储多张表。
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    result = cmd.ExecuteNonQuery();
                }
                else if (textBox1.Text == "" && textBox7.Text != "")
                {
                    string sql = textBox7.Text;
                    //数据集、本地微型数据库可以存储多张表。
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    result = cmd.ExecuteNonQuery();
                }
                else if (textBox1.Text == "" && textBox7.Text == "")
                {
                    MessageBox.Show("请选择按照文本框删除或者sql命令修改!");
                    return;
                }
            }
            catch(Exception)
            {
                MessageBox.Show("操作失败,请检查操作或数据表");
            }

           

            if (result == 0)
            {
                MessageBox.Show("操作失败");
            }
            else
            {
                MessageBox.Show("更新成功!");
            }


        }

6、切换其他表

【图书】

 【销售表】


 

总结

本篇主要是关于使用c#,通过窗体来控制使用mysql实现增删改查,此案例并不完善,但可提供思路。

本篇gitee:https://gitee.com/with-zero/windows--well-c--sql--vs.git

With_Zero 2022.05.27

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐