C#连接MySQL需要添加连接MySQL的引用
本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程
C#引用MySQL步骤:
第一种方法:
- 下载mysql.data.dll
- 将文件放在项目目录下
- 在VS2019项目内,引用mysql.data.dll文件
进入DLL官网下载mysql.data.dll文件(可自选版本下载)

点击下载

下载完成,然后解压mysql.data.dll文件

在项目中右键引用->添加引用->浏览->选中MySql.Data.dll文件->确定。操作如下图:
选择引用

右键引用,点击添加引用

点击浏览

选择mysql.data.dll存放的路径

添加引用之后,点击确定即可
记住勾选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)

点击管理解决方案的NuGet程序包(N).
输入mysql

选择官方的(作者Oracle),勾选项目

点击安装

点击确定(添加成功后会弹窗提示)

点击我接受

安装成功

完成以上操作后即可通过代码连接数据库了。
C#使用MySQL
使用using来调用mysql连接,这样使用完后可以自动关闭连接
连接数据库,不用手动写关闭数据库的方法。
导入命名空间using MySql.Data.MySqlClient;

data source=服务器IP地址;database=数据库名称;user id=数据库用户名;password=数据库密码;pooling=是否放入连接池;charset=编码方式;
连接数据库的参数:
string connectstring= "data source=localhost;database=test1;user id=root;password=root;pooling=true;charset=utf8;";
连接数据库的方法:
MySqlConnection msc = new MySqlConnection(connectstring);
补充一下SqlConnectionStringBuilder
在写连接字符串的时候要写很长一段,容易写错
SqlConnectionStringBuilder可以用来帮助我们生成连接字符串.
这样就可以分开来写DataSource,InitialCatalog,UserID ,Password 等…
//与数据库连接的信息 MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder(); //用户名 builder.UserID = "root"; //密码 builder.Password = "root"; //服务器地址 builder.Server = "localhost"; //连接时的数据库 builder.Database = "lcz"; //定义与数据连接的链接 MySqlConnection connection = new MySqlConnection(builder.ConnectionString); //打开这个链接 connection.Open();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
一般写连接字符串
//导入命名空间
using MySql.Data.MySqlClient;
static void Main(string[] args) { //定义mysql连接字符串 string constring = "data source=localhost;database=test1;user id=root;password=root;pooling=true;charset=utf8;"; //连接mysql MySqlConnection msc = new MySqlConnection(constring); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
MySQL连接字符串参数详细解析
通常数据库连接字符串为:
Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false;
| 参数 | 说明 |
|---|---|
| Server,host, data source, datasource, address, addr, network address | 数据库位置(以上任何关键字均可) |
| Database,initial catalog | 数据库名 |
| Port | socket 端口,默认 3306 |
| ConnectionProtocol,protocol | 连接协议,默认 Sockets |
| PipeName,pipe | 连接管道,默认 MYSQL |
| UseCompression,compress | 连接是否压缩,默认 false |
| AllowBatch | 是否允许一次执行多条SQL语句,默认 true |
| Logging | 是否启用日志,默认 false |
| SharedMemoryName | 内存共享的名称,默认 MYSQL |
| UseOldSyntax,old syntax, oldsyntax | 是否兼容旧版的语法,默认 false |
| ConnectionTimeout,connection timeout | 连接超时等待时间,默认15s |
| DefaultCommandTimeout,command timeout | MySqlCommand 超时时间,默认 30s |
| UserID, uid, username, user name, user | 数据库登录帐号 |
| Password,pwd | 登录密码 |
| PersistSecurityInfo | 是否保持敏感信息,默认 false |
| Encrypt | Encrypt |
| CertificateFile | 证书文件(.pfx)格式 |
| CertificatePassword | 证书的密码 |
| CertificateStoreLocation | 证书的存储位置 |
| CertificateThumbprint | 证书指纹 |
| AllowZeroDateTime | 日期时间能否为零,默认 false |
| ConvertZeroDateTime | 为零的日期时间是否转化为 DateTime.MinValue,默认 false |
| UseUsageAdvisor, usage advisor | 是否启用助手,会影响数据库性能,默认 false |
| ProcedureCacheSize,procedure cache, procedurecache | 同一时间能缓存几条存储过程,0为禁止,默认 25 |
| UsePerformanceMonitor,userperfmon, perfmon | 是否启用性能监视,默认 false |
| IgnorePrepare | 是否忽略 Prepare() 调用,默认 true |
| UseProcedureBodies,procedure bodies | 是否检查存储过程体、参数的有效性,默认 true |
| AutoEnlist | 是否自动使用活动的连接,默认 true |
| RespectBinaryFlags | 是否响应列上元数据的二进制标志,默认 true |
| TreatTinyAsBoolean | 是否将 TINYINT(1) 列视为布尔型,默认 true |
| AllowUserVariables | 是否允许 SQL 中出现用户变量,默认 false |
| InteractiveSession,interactive | 会话是否允许交互,默认 false |
| FunctionsReturnString | 所有服务器函数是否按返回字符串处理,默认 false |
| UseAffectedRows | 是否用受影响的行数替代查找到的行数来返回数据,默认 false |
| OldGuids | 是否将 binary(16) 列作为 Guids,默认 false |
| Keepalive | 保持 TCP 连接的秒数,默认0,不保持。 |
| ConnectionLifeTime | 连接被销毁前在连接池中保持的最少时间(秒)。默认 0 |
| Pooling | 是否使用线程池,默认 true |
| MinimumPoolSize, min pool size | 线程池中允许的最少线程数,默认 0 |
| MaximumPoolSize,max pool size | 线程池中允许的最多线程数,默认 100 |
| ConnectionReset | 连接过期后是否自动复位,默认 false |
| CharacterSet, charset | 向服务器请求连接所使用的字符集,默认:无 |
| TreatBlobsAsUTF8 | binary blobs 是否按 utf8 对待,默认 false |
| BlobAsUTF8IncludePattern | 列的匹配模式,一旦匹配将按 utf8 处理,默认:无 |
| SslMode | 是否启用 SSL 连接模式,默认:MySqlSslMode.None |
SQL命令的执行方法:
ExcuteNonQuery执行增改删:
insert(增)updata(改)delete(删)
ExcuteReader:执行多行查询,返回DataReader对象
ExcuteScalar:执行单行查询,返回查询结果的首行数据
创建MySQL命令对象: MySqlCommand cmd = new MySqlCommand(sql, msc);
读取DataReader对象单行数据: reader.Read()
获取单行字段数据: reader.GetInt32(0); reader.GetString(1);
//导入命名空间
using MySql.Data.MySqlClient;
static void Main(string[] args) { //定义mysql连接字符串 string constring = "data source=localhost;database=test1;user id=root;password=root;pooling=true;charset=utf8;"; //连接mysql MySqlConnection msc = new MySqlConnection(constring); #region MySQL操作 //写入sql语句 string sql = "select * from user"; //创建命令对象 MySqlCommand cmd = new MySqlCommand(sql, msc); //打开数据库连接 msc.Open(); //执行命令,ExcuteReader返回的是DataReader对象 MySqlDataReader reader = cmd.ExecuteReader(); //循环单行读取数据,当读取为null时,就退出循环 while (reader.Read()) { //输出第一列字段值 Console.Write(reader.GetInt32(0) + "\t"); //Console.Write(reader.GetInt32("id") + "\t"); //判断字段"username"是否为null,为null数据转换会失败 if (!reader.IsDBNull(1)) { //输出第二列字段值 Console.Write(reader.GetString(1) + "\t"); //Console.Write(reader.GetString("username") + "\t"); } //判断字段"password"是否为null,为null数据转换会失败 if (!reader.IsDBNull(2)) { //输出第三列字段值 Console.Write(reader.GetString(2) + "\n"); //Console.Write(reader.GetString("password") + "\t"); } } } Console.ReadKey(); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
使用Visual Studio 2019连接MySQL数据库详细教程
文章来源: blog.csdn.net,作者:花伤情犹在,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31762741/article/details/115032697