目录

一、项目要求

二、数据库连接

2.1下载驱动:

2.2驱动介绍

2.3安装

2.4连接MySQL数据库

2.5添加MySQL的引用

三、数据库操作

3.1数据库连接

3.2在DataGridView中显示数据库中数据

3.3数据库基本操作

3.3.1查找

3.3.2删除

3.3.3修改

3.3.4添加

四、结果展示

五、代码仓库


一、项目要求

1、请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表;
2、使用dataGridView控件显示表中的数据;
3、实现基本crud操作;

二、数据库连接

2.1下载驱动:

1.mysql odbc驱动:

mysql-connector-odbc-8.0.20-winx64.msi

2.Visual Studio连接MySQL工具

mysql-for-visualstudio-1.2.9.msi

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

2.2驱动介绍

1.MySQL Connector/ODBC 有时也可以叫做 MyODBC,用户可以用ODBC (Open Database Connectivity,开放数据库互联)数据库连接Mysql的服务器。比如说,用户可以使用Windows或者Unix平台中的应用程序,如微软的 Access,Excel和Borland 的Delphi去连接数据库服务器。

2.mysql for visual studio(VS连接MySQL工具)是一款visual studio连mysql工具,它可以直接集成到Server Explorer中,为设置新连接和处理数据库对象提供无缝体验,但是想让VS访问到MySQL仅仅mysql for visual studio是不够的,还需要下载mysql connector net。

3.MySQL Connector/Net 是 MySQL 官方的 .NET 驱动程序,MySQL 官方的 .NET 客户端开发包。mysql 数据库最新版dotnet数据库连接驱动。

2.3安装

我们要用visual studio连接mysql只需要下载mysql for visual studio和MySQL Connector/Net

2.4连接MySQL数据库

安装完成后,需重启VS

然后添加数据库连接

选择MySQL数据库:

连接数据库:

 

 连接成功:

2.5添加MySQL的引用

1.下载mysql.data.dll

 2.选择引用

在项目中右键引用->添加引用->浏览->选中MySql.Data.dll文件->确定:

 3.添加完成,点击引用,就可以看到已经添加mysql.data引用

 

三、数据库操作

3.1数据库连接

用户输入用户名和密码,从两个textbox中读取信息,点击连接后连接数据库

protected void btnClick(object sender, EventArgs e)
        {
            //与数据库连接的信息
            MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
            builder.UserID = Account.Text;  //用户名
            builder.Password = Password.Text;  //密码
            builder.Server = "localhost";  //服务器地址 
            builder.Database = "test";  //连接时的数据库
            MySqlConnection connection = new MySqlConnection(builder.ConnectionString);  //定义与数据连接的链接

            try
            {
                con.Open();//打开数据库连接
                Response.Write("连接数据库查询成功");
                SqlDataReader sdr = cmd.ExecuteReader();//执行SQL命令,并获取查询结果
                GridView1.DataSource = sdr;//将查询结果连接到GridView1中
                GridView1.DataBind();//将结果与GridView1绑定
            }
            catch (Exception ex)
            {
                Response.Write("连接失败,原因是" + ex.Message);
            }
            finally
            {
                if (con.State == System.Data.ConnectionState.Open) //判断数据库连接是否关闭
                    con.Close();//关闭数据库连接
            }
        }`

3.2在DataGridView中显示数据库中数据

因为显示数据库中的全部数据为常用操作,所以将其封装为一个函数QueryAll(),以便再次使用

 private void all_data_Click(object sender, EventArgs e){
            QueryAll();//在表格中显示全部数据
        }
        private void QueryAll(){
            string sql = "SELECT * FROM userlist";
            try
            {
                MySqlCommand cmd = new MySqlCommand(sql, conn);
               // DataSet ds = new DataSet();
                MySqlDataReader reader = cmd.ExecuteReader();//执行ExecuteReader()返回一个MySqlDataReader对象
                //将bs的数据来源设置为reader对象
                BindingSource bs = new BindingSource();
                bs.DataSource = reader;
                //将表格的数据来源设置为bs对象
                this.dataGridView1.DataSource = bs;

                //设置每一列的标题
                dataGridView1.Columns[0].HeaderText = "账号";
                dataGridView1.Columns[1].HeaderText = "姓名";
                dataGridView1.Columns[2].HeaderText = "性别";
                dataGridView1.Columns[3].HeaderText = "年龄";
                dataGridView1.Columns[4].HeaderText = "电话";
                //选择第四列不显示
                dataGridView1.Columns[3].Visible = false;
                reader.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show("错误信息:" + err.Message + "\n错误来源:" + err.Source);
            }
        }

3.3数据库基本操作

3.3.1查找

查找功能是获取文本框中输入的内容,再到数据库中进行对比,将结果显示到表格中

        private void btnQuery_Click(object sender, EventArgs e){
             if(textBox1.Text!="")
                QueryLike();
             else
             	MessageBox.Show("输入的内容不可为空");
        }
 		private void QueryLike() {
            string sql = string.Format("SElECT * FROM userlist WHERE U_NAME='{0}'",textBox1.Text);
            try
            {
                MySqlCommand mcom = new MySqlCommand(sql,conn);
                //使用数据库数据适配器,将数据填充
                MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn);
                //创建DataSet类的对象
                DataSet ds = new DataSet();
                //使用SqlDataAdapter对象sda将查询结果填充到DataSet对象ds中
                sda.Fill(ds);
                //设置表格控件的数据来源为ds
                dataGridView1.DataSource = ds.Tables[0];
               // mreader.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show("错误信息:" + err.Message + "\n错误来源:" + err.Source);
                throw;
            }
        }

3.3.2删除

private void btnDelect_Click(object sender, EventArgs e)
        {
            int id = int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
            //string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();  //选中行的第1行,第2列
            //数据库连接串
            
            try
            {
               //MySqlConnection conn = new MySqlConnection(connStr);
                string sql = string.Format("delete from userlist where U_ID={0}",id);
                //填充占位符
                //创建命令执行器对象
                MySqlCommand cmd = new MySqlCommand(sql,conn);
                //执行SQL语句
                cmd.ExecuteNonQuery();
                //弹出消息提示删除成功
                MessageBox.Show("删除成功!");
                //调用查询全部的方法,刷新DataGridView控件中的数据
                QueryAll();
            }
            catch (Exception err)
            {
                MessageBox.Show("错误信息:"+err.Message+"\n错误来源:"+err.Source);
              
            }
        }

3.3.3修改

private void btn_updata_Click_1(object sender, EventArgs e)
        {
                /*修改数据*/
                int id = int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());//获取选中的行的id     
                //向upDateform窗口传参代表要修改数据
                upDateform up = new upDateform(id);
                up.Show();
        }
 private void button1_Click_1(object sender, EventArgs e)
        {
                //状态为修改数据
                string sql = "UPDATE userlist ('U_ID' ,'U_NAME' ,'U_SEX' ,'U_PWD' ,'U_EMAIL')VALUES ('{0}','{1}','{2}','{3}','{4}')";
                sql = string.Format(sql, txtid.Text, txtname.Text, txtsex.Text, txtpwd.Text, txtmail.Text);
                try
                {
                    MySqlCommand cmd = new MySqlCommand(sql, conn);//命令执行器
                    cmd.ExecuteNonQuery();//执行sql命令
                    MessageBox.Show("更新成功!");
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);
                    throw;
                }
                conn.Close();
        }

3.3.4添加

private void btn_insert_Click(object sender, EventArgs e)
        {
                /*添加数据*/
                //不向upDateform窗口传参代表添加数据
                upDateform up = new upDateform();
                up.Show();
        }
 private void button1_Click_1(object sender, EventArgs e)
        {
                //状态未新增数据
                string sql = "INSERT INTO userlist (`U_ID` ,`U_NAME` ,`U_SEX` ,`U_PWD` ,`U_EMAIL`)VALUES ('{0}','{1}','{2}','{3}','{4}')";
                sql = string.Format(sql, txtid.Text, txtname.Text, txtsex.Text, txtpwd.Text, txtmail.Text);
                try
                {
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("更新成功!");
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);
                    throw;
                }
                conn.Close();
        }

四、结果展示

1.查看所有数据

2.查找

3.删除

删除后

4.添加

添加后

5.修改

选中小齐,将性别改为女

修改后

五、代码仓库

https://github.com/zljdgit/WinMySql.git

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐