一、实验目的

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

二、具体操作

1.数据库连接VS2019

(1)下载mysql 的驱动

要不然在VS中连接数据库时会发现没有mysql数据库。

下载驱动:
mysql-connector-odbc-8.0.20-winx64.msi
mysql odbc驱动

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

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

(2)连接数据库

step1: 点击视图,选择 服务器资源管理器

step2:右击数据连接,选择添加连接

step3:这个时候会发现,数据源中出现了MYSQL Database的选项,选择它

step4:填上合适的数据库信息(就是你提前创建的数据库的信息)

Server name输入MySQL的IP地址
              localhost即本地,localhost=127.0.0.1
              一般我们直接选择本地输入localhost或者127.0.0.1
              然后输入MySQL的用户名和密码
              Database name输入test(可自行选择)

step5:可以点击测试链接,如果显示测试成功,就可以点击确定,完成连接;

2.建表

这里可以选择可以直接打开navicat在数据库中建表,但是由于我已经提前建好,所以我就不在此演示了

3.使用DataGridView控件显示表中的数据

step1:在工具箱中检索DataGridView控件,拖拽到窗体中

一定要注意,进行这个操作前,去看看这个数据链接是不是打开的状态,如果你是重新启动去看的,那么就是关闭的状态,你去点击一下就可以打开了!!!然后进行以下操作:

 

step2:点击选择数据源旁边的小箭头,选择添加数据源

step3:选择你的数据库类型,一步一步跟着图片走即可

step4:最后就是选择你想要绑定的表格就完成了!

4.实现基本crud操作(具体代码)

(1)基本操作

private void print_in_dataGridView(){MySqlCommand mycom = conn.CreateCommand();mycom.CommandText = "SELECT * FROM student ; ";MySqlDataAdapter adap = new MySqlDataAdapter(mycom);DataSet ds = new DataSet();adap.Fill(ds);dataGridView1.DataSource = ds.Tables[0].DefaultView;}private void button5_Click(object sender, EventArgs e){string M_str_sqlcon = "server=localhost;user id=root;password=20010401;database=test";                                                                                              //创建数据库连接对象conn = new MySqlConnection(M_str_sqlcon);try{//打开数据库连接conn.Open();MessageBox.Show("数据库已经连接了!");}catch (Exception ex){MessageBox.Show(ex.Message);}print_in_dataGridView();}

(2)增


private void button4_Click(object sender, EventArgs e){String table_name = textBox1.Text.Trim();String Id = textBox2.Text.Trim();String Name = textBox3.Text.Trim();String Sex = textBox4.Text.Trim();String Birth = dateTimePicker1.Value.ToString("yyyy-MM-dd");string[] row = { Id, Name, Birth, Sex };try{conn.Open();String insertstr = "INSERT INTO Student (s_id,s_name,s_birth,s_sex) VALUES" + "(" + Id + "," + Name + "," + Birth + "," + Sex + ");";MySqlCommand cmd = new MySqlCommand(insertstr, conn); //实例化数据库命令对象cmd.ExecuteNonQuery(); //执行命令}catch { MessageBox.Show("输入数据有误,请输入有效数据!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); }finally { conn.Close(); }//显示到dataGridViewprint_in_dataGridView();}

(3)删:

private void button3_Click(object sender, EventArgs e){try{conn.Open();string select_id = textBox2.Text;//选择的当前行第一列的值,也就是IDstring delete_by_id = "delete from Student where s_id = " + "\"" + select_id + "\"";//sql删除语句,根据学号删除MySqlCommand cmd = new MySqlCommand(delete_by_id, conn);cmd.ExecuteNonQuery(); //执行命令}catch { MessageBox.Show("请正确选择行!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); }finally { conn.Dispose(); }print_in_dataGridView();}

(4)改:

private void button2_Click(object sender, EventArgs e){int flag1 = 0, flag2 = 0;try{conn.Open();//打开数据库string updatestr = "UPDATE Student SET ";String table_name = textBox1.Text.Trim();String Id = textBox2.Text.Trim();String Name = textBox3.Text.Trim();String Sex = textBox4.Text.Trim();String Birth = dateTimePicker1.Value.ToString("yyyy-MM-dd");string[] row = { Id, Name, Birth, Sex };if (checkBox_birth.Checked == true){if (flag1 == 0){updatestr += "s_birth = " + "\"" + Birth + "\"";flag1 = 1;}elseupdatestr += ", s_birth = " + "\"" + Birth + "\"";}if (checkBox_name.Checked == true){if (flag1 == 0){updatestr += "s_name = " + "\"" + Name + "\"";flag1 = 1;}elseupdatestr += ", s_name = " + "\"" + Name + "\"";}if (checkBox_sex.Checked == true){if (flag1 == 0){updatestr += "s_sex = " + "\"" + Sex + "\"";flag1 = 1;}elseupdatestr += ", s_sex = " + "\"" + Sex + "\"";}updatestr += " WHERE s_id = " + "\"" + Id + "\"";MySqlCommand cmd = new MySqlCommand(updatestr, conn);cmd.ExecuteNonQuery();}catch{flag2 = 1;MessageBox.Show("输入数据违反要求!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);}finally { conn.Close(); }print_in_dataGridView();if (flag2 == 0){MessageBox.Show("修改成功!", "Tips", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}}

(5)查:

private void button1_Click(object sender, EventArgs e){string table_name = textBox1.Text.Trim();string name = textBox3.Text.Trim();string date = dateTimePicker1.Text;string sex = textBox4.Text.Trim();if (table_name == null && (table_name != "教师") && (table_name!="学生")){MessageBox.Show("请正确填写表格名");}else{string sql = "select * from " + table_name;mda = new MySqlDataAdapter(sql, conn);ds = new DataSet();mda.Fill(ds, table_name);//显示数据dataGridView1.DataSource = ds.Tables[table_name];conn.Close();}}

三、实验结果

数据库查询:

数据修改:

四、仓库代码

https://gitee.com/ajiuooo/csharp-for-database-connection.git

VS2019连接MySQL数据库相关推荐

  1. dw2019连接mysql数据库_VS2019连接mysql8.0数据库的教程图文详解

    1.首先准备好VS2019以及mysql数据库,两者都可以去官网下载,我们直接描述连接过程. 2.连接: 第一步:打开mysql的安装目录,我本地的安装目录如下:(注意是否有include和lib文件 ...

  2. QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案

    QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案 环境 VS2019 mysql Ver 14.14 Distrib 5.7.36, for Win64 ( ...

  3. C++远程连接MySQL数据库

    C++远程连接MySQL数据库 1. 一个想法 2. 实操过程及截图 2.1 软硬件介绍 2.2 实操过程 2.3 测试 3. 总结 1. 一个想法 最近迷上了MySQL数据库,感觉很多信息都可以存在 ...

  4. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  5. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  6. python用django连接mysql_三分钟了解Django如何连接Mysql数据库

    处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py    在views函数文件中添加register函数,来处理用户注册 ...

  7. eclipselink mysql_Eclipse连接MySQL数据库(傻瓜篇)

    Eclipse连接MySQL数据库(傻瓜篇) 本来不想写这么简单人文章,在百度上搜索我这个标题,完全符合标题的一大堆.但我按照那些文章捣鼓了很久,就是不行. 我的环境:MySQL:mysql-esse ...

  8. Linux JSP连接MySQL数据库

    Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...

  9. python使用PyMySQL的连接MySQL数据库

    如何实现将100000条数据插入到MySQL数据库?如果使用MySQL客户端来完成这个操作,那么这个工作量无疑是巨大的,可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据库进行增删 ...

最新文章

  1. HTML5/CSS3hack
  2. Android Broadcast Security
  3. cognos 样例 oracle,Cognos10安装和sample配置(ORACLE学样例)
  4. VTK/ITK 学习资料
  5. ExcelPackage 读取、导出excel
  6. 迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}...
  7. 把CMD下的color 方案遍历一遍
  8. Eclipse 语言包下载地址
  9. JavaScript特效——让文字每秒钟进行变色
  10. 读者推荐 · 一个美观的简历生成器
  11. 周期均方根和有效值的区别_电流电压“均方根值”为何是有效值?
  12. AndroidQ适配之存储权限的变更
  13. 如何解决hangfire使用redis存储时,如果采用了prefix报“Key has MOVED from Endpoint”的错...
  14. 【后端学习之路】Browsers and how they work?
  15. SDHC 存储卡会导致刷机模式不被识别
  16. AR红包大战一触即发,2017年会成AR营销元年吗?
  17. Android——新大陆云平台篇
  18. P1598 垂直柱状图C++
  19. 交易猫跳转APP+后台管理
  20. 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵...

热门文章

  1. js实现在线RSA公钥私钥对生成,加密/解密
  2. kafka与zk的关系(一)
  3. Gitlab跨仓库跨分支搜索工具
  4. AI漫谈:我们距离实现《庆余年》里的五竹叔机器人还有多远?
  5. 【分立元件】功率电感啸叫原因
  6. zynq+AD9361软件无线电设计
  7. 花呗利息用计算机怎么算,花呗有利息吗?具体怎么算的?
  8. 天勤考研中数据结构的代码书写规范以及C与C++语言基础
  9. 滑环在绕线型异步电机上的最新应用
  10. 安徒生的伤感日志:徘徊在原地,找不到离去的方向