目录
S1:到官网下载VS2019
S2:创建项目
S3:下载插件,准备连接MYSQL
2:下载驱动
3:下载mysql-for-visualstudio-1.2.9.msi
4:连接MySQL
5:C#连接MySQL需要添加连接MySQL的引用
第一种方法:
第二种方法
第三种方法:
5:C#使用MySQL
报错1:using System.Windows.Forms报错
S1:到官网下载VS2019
如果进度条不动,就改自己的DNS :
1.打开网络适配器,并打开属性
2.选择Internet协议版本4(TCP/Ipv4)
3.选择属性,进入以下界面:
4.选择“使用下面的DNS服务器地址(E):”,并且在服务器地址栏里填写8.8.8.8(或者127.0.0.0)和8.8.4.4选择确定,一次退出。
5.重新打开vs installer成功开始下载。如果只是想用C# 连接MYSQL ,只加以下东东就行啦,多了占空间。
6.下载完毕后记得把DNS改回来
PS:如果以上方法后,进度条仍然不动,方法,大家懂的都懂
S2:创建项目
1.创建项目的时候,选后面是(.Net Framework)的项目.Net Core不行。至于为什么.Net Core项目里找不到System.Windows.Forms类,我不知道。
S3:下载插件,准备连接MYSQL
1:如果要在 Visual Studio 2019中使用MySQL数据库,首先需要下载MySQL的驱动Visual Studio默认只显示微软自己的SQL Server数据源,如下图所示:
2:下载驱动
http://mysql-connector-odbc-8.0.20-winx64.msi
mysql odbc驱动
http://mysql-for-visualstudio-1.2.9.msi
Visual Studio连接MySQL工具
http://mysql-connector-net-8.0.20.msi
mysql数据库.net开发驱动
驱动介绍
①.MySQL Connector/ODBC
有时也可以叫做 MyODBC,用户可以用ODBC (Open Database Connectivity,开放数据库互联)数据库连接Mysql的服务器。比如说,用户可以使用Windows或者Unix平台中的应用程序,如微软的 Access,Excel和Borland 的Delphi去连接数据库服务器。
②.mysql for visual studio(VS连接MySQL工具)
是一款visual studio连mysql工具,它可以直接集成到Server Explorer中,为设置新连接和处理数据库对象提供无缝体验,但是想让VS访问到MySQL仅仅mysql for visual studio是不够的,还需要下载mysql connector net。
③.MySQL Connector/Net
是 MySQL 官方的 .NET 驱动程序,MySQL 官方的 .NET 客户端开发包。mysql 数据库最新版dotnet数据库连接驱动。
根据自己的需求下载,我们要用visual studio连接mysql只需要下载mysql for visual studio和MySQL Connector/Net
3:下载mysql-for-visualstudio-1.2.9.msi
进入官网: mysql-for-visualstudio-1.2.9.msi 下载第一个程序安装包->开始下载(点击No thanks, just start my download.
)->打开安装包->点击Next->
选择安装类型
下面是三种安装类型说明:
Typical>典型:通常安装最常见的程序功能。推荐给大多数用户。
Custom>自定义:允许用户选择哪些程序功能将被安装,以及它们将被安装在哪里。建议高级用户使用。
Complete>完整:全部程序功能将被安装。需要最多的磁盘空间。
一般选择第一个Typical即可->点击install->安装完成(点击Finish)->重启visual studio
另外两个驱动的下载由于有多种方法,以及需要在连接数据库后在实现,所以将在下面连接完数据库后讲解,当然,如果你现在点击剩余的两个连接,下载了也没有关系,下载方法跟已经下载的这个same
4:连接MySQL
在菜单栏里面选择视图->选择数据连接->你就会发现有MySQL 的选项了,进入里面配置数据库相关信息即可->Server name输入MySQL的IP地址
PS:localhost即本地,localhost=127.0.0.1(一般我们直接选择本地输入localhost或127.0.0.1)
然后输入MySQL的用户名和密码
Database name输入test(可自行选择)
test:这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。
这里再添加一个说明,若你的数据库设置的端口为‘3306’(默认),若你的数据库端口更改了,比如改成了‘3307’,需要点击高级,把里面的【port】改为对应的’3307‘即可。如下图所示:
点击高级->找到Port,在后面的输入框输入3306
点击测试连接->确定->确定->然后在属性界面会显示详细信息->服务器资源管理器会显示数据库信息
连接MySQL的教程也就结束了
但是光Visual Studio连接MySQL还不行,还需要添加MySQL的引用,安装MySQL Connector/Net就是用来添加MySQL的引用(即我上面说的下载另外的驱动,下面5:展示)
5:C#连接MySQL需要添加连接MySQL的引用
将介绍3种添加MySQL引用的方法
C#引用MySQL步骤:
第一种方法:
下载mysql.data.dll->将文件放在项目目录下->在VS2019项目内,引用mysql.data.dll文件
进入DLL官网下载mysql.data.dll文件(可自选版本下载)->点击下载->下载完成,然后解压mysql.data.dll文件->在项目中右键引用->添加引用->浏览->选中MySql.Data.dll文件(这个地址你在下载的时候放到目标文件旁边,便于你寻找最好)->确定->点击引用,就可以看到已经添加mysql.data
引用(引用属性里可以看到引用详细信息
)。操作如下图:
第二种方法
①添加动态链接库文件:在官网下载connector/net
②将文件放在项目目录下
③在VS2019项目内,引用mysql.data.dll文件
去MySQL官网下载动态链接库文件->点击Download->点击No thanks, just start my download.开始下载->双击程序->点击Next->
选择安装类型
下面是三种安装类型说明:
Typical>典型:通常安装最常见的程序功能。推荐给大多数用户。
Custom>自定义:允许用户选择哪些程序功能将被安装,以及它们将被安装在哪里。建议高级用户使用。
Complete>完整:全部程序功能将被安装。需要最多的磁盘空间。
一般选择第一个Typical即可->点击install进行安装->看进度条,等待安装即可->安装完成
选择引用->右键引用,点击添加引用->mysql.data.dll默认存放的路径
由于我们安装了动态链接库文件直接去C盘选择动态链接库文件
路径:C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.23\Assemblies\v4.5.2
可以看到很多动态链接库文件—>当然你也可以使用Everything快速定位mysql.data.dll的文件路径—>输入mysql.data.dll即可快速定位
->点击浏览->选择mysql.data.dll存放的路径,找到dll文件路径:C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.23\Assemblies\v4.5.2->点击添加->勾选即可,点击确定->查看引用
第三种方法:
直接在visual studio内添加mysql方案包
在菜单栏内部选择工具->点击管理解决方案的NuGet程序包(N).->输入mysql->选择官方的(作者Oracle),勾选项目->点击安装->点击确定(添加成功后会弹窗提示)->点击我接受->安装成功
ps:如果搜索不到mysql,安装教程结束后有解决方法
如果搜索不到mysql,解决方法:
1、点击右侧的设置按钮
2、弹出窗中左侧树形结构选择“程序包源”->点击右上方的添加按钮->点击更新->点击确定按钮->输入https://www.nuget.org/api/v2/->后面一直同意就行了,
再次搜索就可找到EF安装包。
S4:C#使用MySQL
由于要达成如图所示界面:
输入以下代码,若出现报错,在下面找到你的报错,按照如图修改即可
using MySql.Data.MySqlClient;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;namespace LinkSQL{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } string connString; MySqlCommand comm = new MySqlCommand(); MySqlConnection conn; private void button1_Click(object sender, EventArgs e) { connString = "server=localhost; database=test; uid=root; pwd=q1298516531;Character Set=utf8;"; conn = new MySqlConnection(connString); comm.Connection = conn; conn.Open(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void button5_Click(object sender, EventArgs e) { try { string sql = "select * from score where "; int n = 0; if (textBox1.Text != "") { sql += label1.Text + " = " + textBox1.Text; n++; } if (textBox2.Text != "") { if (n == 0) sql += " " + label2.Text + " = " + textBox2.Text; else sql += " and " + label2.Text + " = " + textBox2.Text; } if (textBox4.Text != "") { if (n == 0) sql += " " + label4.Text + " = " + textBox4.Text; else sql += " and " + label4.Text + " = " + textBox4.Text; } sql += ";"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button2_Click(object sender, EventArgs e) { try { string sql = "insert into score values("+textBox1.Text+","+textBox2.Text+","+textBox4.Text+");"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button3_Click_1(object sender, EventArgs e) { try { string sql = "delete from score where " ; int n = 0; if (textBox1.Text != "") { sql += label1.Text + " = " + textBox1.Text; n++; } if (textBox2.Text != "") { if (n == 0) sql += " " + label2.Text + " = " + textBox2.Text; else sql += " and " + label2.Text + " = " + textBox2.Text; } if (textBox4.Text != "") { if (n == 0) sql += " " + label4.Text + " = " + textBox4.Text; else sql += " and " + label4.Text + " = " + textBox4.Text; } sql += ";"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button4_Click(object sender, EventArgs e) { try { int n = 0; string sql = "update score set " + label4.Text + " = " + textBox4.Text + " where s_id = " + textBox1.Text + " and c_id=" + textBox4.Text + ";"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }}
报错1:using System.Windows.Forms报错
首先,你得是按照上面S2创建的项目->右击引用,选择添加引用。在程序集->框架 里面就可以找到System.Windows.Forms,前面左击打勾,然后在这个窗口右下角左击确定按钮。
报错2: