目录

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: