本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程

前篇:Visual Studio 2019连接MySQL数据库详细教程


\[QAQ
\]

第一种方法

  1. 下载 Mysql.data.dll,下载链接:Here可自选版本下载

  2. 将文件解压至合适的地方

  3. 在VS2019项目内,引用 Mysql.data.dll 文件

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

完成添加后就可以看到已经添加Mysql.data引用(引用属性里可以看到引用详细信息

第二种方法

  1. 添加动态链接库文件:官网下载 connector/net

    如果已经看过前篇博客的话此步已经完成了

  2. 将文件放在项目目录下

  3. 在VS2019项目内,引用 Mysql.data.dll 文件

    注意,这里的 Mysql.data.dll 文件在我们刚刚安装的 connector/net 的内部文件夹下。

    如果不记得安装在哪里,可使用 \(Everything\) 快速定位Mysql.data.dll的文件路径

第三种方法:

直接在 Visual Studio 内添加 mysql 方案包

菜单栏 -> 工具 -> NuGet包管理器(N) -> 管理解决方案的NuGet程序包(N) -> 点击确定(添加成功后会弹窗提示

完成以上操作后即可通过代码连接数据库了


\[QAQ
\]

C#使用MySQL

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 可以用来帮助我们生成连接字符串.

这样就可以分开来写DataSourceInitialCatalogUserIDPassword 等…

//与数据库连接的信息
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
//用户名
builder.UserID = "root";
//密码
builder.Password = "root";
//服务器地址
builder.Server = "localhost";
//连接时的数据库
builder.Database = "lcz";
//定义与数据连接的链接
MySqlConnection connection = new MySqlConnection(builder.ConnectionString);
//打开这个链接
connection.Open();

一般写连接字符串

//导入命名空间
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);
}

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执行增改删

  1. insert(增)
  2. updata(改)
  3. 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();
}

C# | VS2019连接MySQL的三种方法以及使用MySQL数据库教程的更多相关文章

  1. jdbc连接oracle的三种方法

    jdbc连接oracle的三种方法 使用service_name,配置方式:jdbc:oracle:thin:@//<host>:<port>/<service_name ...

  2. linux下安装mysql的三种方法:rpm包安装、yum安装、源码包安装

    1 安装MySQL数据库服务器安装方法一://查询系统自带的数据库rpm -qa | grep -i mysql //卸载查询到的所有mysqlrpm -e --nodeps mysql-libs-5 ...

  3. C#后台调用浏览器打开下载连接地址的三种方法

    一.从注册表中读取到本地计算机默认浏览器,然后调用下载. private void button1_Click(object sender, EventArgs e)   {       //从注册表 ...

  4. HOSt ip is not allowed to connect to this MySql server, MYSQL添加远程用户或允许远程访问三种方法

    HOSt ip is not allowed to connect to this MySql server 报错:1130-host ... is not allowed to connect to ...

  5. Docker MySql 查看版本的三种方法

    目录 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 2.status命令查看版本 3.version命令查看版本 Docker MySql 查看版本的三种方法 1.m ...

  6. [mysql]三种方法为root账户指定密码

    前言:前段时间把mysql安装后一直没管它,当时就在奇怪为什么mysql登陆不要密码,原来一直用的超用户账户登陆的(简称超级用户) 其实只怪自己太无知,之前一直用的phpbydamin进行的数据库的可 ...

  7. MySQL创建用户的三种方法 (并授权)转

    前言:MySQL创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...

  8. MYSQL加入远程用户或同意远程訪问三种方法

    加入远程用户admin密码为password GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY \'password\' WIT ...

  9. MySQL创建用户的三种方法

    前言:MySQL创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...

随机推荐

  1. spring Data Jpa的依赖+配置

    spring data jpa 是spring基于的orm框架,jpa规范的基础上封装的一套JPA应用框架 添加的相关依赖: <properties> <spring.version ...

  2. Android Kotlin协程入门

    Android官方推荐使用协程来处理异步问题.以下是协程的特点: 轻量:单个线程上可运行多个协程.协程支持挂起,不会使正在运行协程的线程阻塞.挂起比阻塞节省内存,且支持多个并行操作. 内存泄漏更少:使 ...

  3. P5494-[模板]线段树分裂

    正题 题目链接:https://www.luogu.com.cn/problem/P5494 题目大意 给出一个可重集合要求支持 将集合\(p\)中在\([l,r]\)的数放到一个新的集合中 将集合\ ...

  4. 测试开发【提测平台】分享12-掌握日期组件&列表状态格式化最终实现提测管理多条件搜索展示功能

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本章内容思维导图如下,由于需要各种状态下的菜单操作,所以需要先实现提测信息的列表基础页面,然后再推进其他需求开发 基本知识点学习 Date ...

  5. Go语言核心36讲(Go语言基础知识三)--学习笔记

    03 | 库源码文件 在我的定义中,库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话). 这里的"其他代码" ...

  6. Java基础之(二):Notepad++实现HelloWorld

    现在我们开始编写我们的第一个程序:Hello World! HelloWorld 新建一个java文件 文件后缀名为.java Hello.java 代码分析: 接下来写完最大的框之后,那接下来当然就 ...

  7. 【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?

    问题描述 在App Service中运行Python编写的定时任务,需要使用pymssql连接到数据库,但是发现使用 python.exe -m pip install --upgrade -r re ...

  8. 【数据结构与算法Python版学习笔记】图——强连通分支

    互联网 我们关注一下互联网相关的非常巨大图: 由主机通过网线(或无线)连接而形成的图: 以及由网页通过超链接连接而形成的图. 网页形成的图 以网页(URI作为id)为顶点,网页内包含的超链接作为边,可 ...

  9. 如何接入 K8s 持久化存储?K8s CSI 实现机制浅析

    作者 王成,腾讯云研发工程师,Kubernetes contributor,从事数据库产品容器化.资源管控等工作,关注 Kubernetes.Go.云原生领域. 概述 进入 K8s 的世界,会发现有很 ...

  10. Asp.net Core C#进行筛选、过滤、使用PredicateBuilder进行动态拼接lamdba表达式树并用作条件精准查询,模糊查询

    在asp.net core.asp.net 中做where条件过滤筛选的时候写的长而繁琐不利于维护,用PredicateBuilder进行筛选.过滤.LInq配合Ef.core进行动态拼接lamdba ...