【C#】使用MySql.Data.dll连接MySQL数据库
准备工作
在Visual Studio中新建一个C#的控制台应用程序。
确保后台已经启用了MySQL57服务。

在MySQL的安装路径下找到DLL,默认位置是 C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll 。
更多写代码连接MySQL的方法(通过MySQLConnector连接器),参考文档 C:\Program Files (x86)\MySQL\Connector.NET 6.9\Documentation\ConnectorNET.chm 。在文档的Users Guide-Programming中有代码案例。
把MySql.Data.dll引入项目中。v4.5表示.NetFramework框架的版本号,一定要保证使用的DLL与项目的.NetFramework版本一致,否则运行时报错找不到DLL,报错如下:
>F:\Learning\CSharpConnectMySQL\CSharpConnectMySQL\Program.cs(,,,): error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)
测试增删改查
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace CSharpConnectMySQL
{
class Program
{
static void Main(string[] args)
{
// 服务器地址;端口号;数据库;用户名;密码
string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root"; // 用户名和密码在MySQL定义的
// 创建连接
MySqlConnection conn = new MySqlConnection(connectStr); try
{
// 打开连接
conn.Open();
Console.WriteLine("已经建立连接"); //Query(conn); // 测试查询
//Insert(conn); // 测试插入
//Update(conn); // 测试更新
//Delete(conn); // 测试删除
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
// 关闭连接
conn.Close();
Console.WriteLine("数据库已关闭");
} Console.ReadKey();
} /// <summary>
/// 查询
/// </summary>
/// <param name="conn"></param>
private static void Query(MySqlConnection conn)
{
// 创建命令
string sql = "select * from users";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 读取数据
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()) // true表示能读取该行数据
{
// 方式一:访问数组
Console.WriteLine(reader[].ToString() + reader[].ToString()); // reader[0]是读出来的第一列属性
// 方式二:根据列数
Console.WriteLine(reader.GetInt32(0));
// 方式三:根据列名
Console.WriteLine(reader.GetInt32("user_id"));
}
} /// <summary>
/// 插入,增加数据
/// </summary>
/// <param name="conn"></param>
private static void Insert(MySqlConnection conn)
{
// 创建命令
string sql = "insert into user(user_name, user_pwd) values('asdAa','2345')";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 添加一条记录
int result = cmd.ExecuteNonQuery();
Console.WriteLine("数据库中受影响的行数 = " + result);
} /// <summary>
/// 更新,改数据
/// </summary>
/// <param name="conn"></param>
private static void Update(MySqlConnection conn)
{
// 创建命令
string sql = "update user set user_name = 'newName', user_pwd = '66777' where user_id = '3'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 更新记录
int result = cmd.ExecuteNonQuery();
Console.WriteLine("数据库中受影响的行数 = " + result);
} /// <summary>
/// 删除数据
/// </summary>
/// <param name="conn"></param>
private static void Delete(MySqlConnection conn)
{
// 创建命令
string sql = "delete from user where user_id = '4'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
// 删除记录
int result = cmd.ExecuteNonQuery();
Console.WriteLine("数据库中受影响的行数 = " + result);
}
}
}
传参拼接SQL语句
/// <summary>
/// 验证用户名和密码
/// </summary>
/// <param name="conn"></param>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <returns></returns>
private static bool Verify(MySqlConnection conn, string userName, string password)
{
// 方式一:组拼sql
//string sql = "select * from user where user_name = '" + userName + "' and user_pwd = '" + password + "'";
//MySqlCommand cmd = new MySqlCommand(sql, conn); // 方式二:参数标记
string sql = "select * from user where user_name = @p1 and user_pwd = @p2";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("p1", userName); // 这里会根据输入的类型,自动判断要不要加单引号''
cmd.Parameters.AddWithValue("p2", password); MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read()) // 要么查出一条数据,要么0条。
{
return true;
} return false;
}
【C#】使用MySql.Data.dll连接MySQL数据库的更多相关文章
- C#调用MySQL数据库(使用MySql.Data.dll连接)mysql-connector-net-6.10.4.msi
下载地址:http://dev.mysql.com/downloads/connector/net/ 安装指导 1.安装:mysql-connector-net-6.10.4.msi 其下载地址:ht ...
- MySql.Data.MySqlClient连接MySql
在C#中连接MySql数据库其实是件很简单的事情,但对于刚开始学习C#的朋友来说,问题却是不小,主要原因是相对于ACCESS和MSSql来说,MySql方面的教程文章实在太少,我也是自己摸索好好半天才 ...
- log4net引用了Mysql.Data.dll,但是就是不能写到mysql数据库的解决办法
这两天遇到log4net写日志到mysql数据库中,有时候在A项目中可以,有时候B项目就有问题,有时候测试环境没问题,到正式部署环境又出问题,经过两天的煎熬,终于理清楚了其中的头绪. 1.配置现状 c ...
- Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载
MySqlHelper.cs代码如下: using System; using System.Collections.Generic; using System.Linq; using System. ...
- .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper
.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary> /// MySql ...
- Silverlight用户无法注册之MySql.Data.dll不一致
本篇博文记录本人解决一个"用户无法注册"的问题的过程 1 问题描述: 用户可以删除:但不能注册,也不能修改权限: 图 1用户注册失败 图 2修改用户权限出错 2 解决过程 1)粗暴 ...
- MySql.Data.dll官网下载
Mysql.Data.dll官网下载 在项目开发中链接MySQL数据库经常要用到Mysql.Data.dll,网上虽然有很多,但是还是比较信赖官网的 今天就从官网下载一次记录一下过程 1.下载地址 官 ...
- 关于Linux和Windows下部署mysql.data.dll的注册问题
mysql ado.net connector下载地址: http://dev.mysql.com/downloads/connector/net/ 选择版本: Generally Available ...
- 使用Mysql.data.dll文件在服务器上运行访问Mysql
我使用的这个Mysql.data.dll文件 web.config上面主要需要声明以下代码 <system.data> <DbProviderFactories> <ad ...
随机推荐
- 压缩跟踪(CT)代码具体学习_模块1(样本的採集和扩充)
本章主要具体解释的是compressive tracking框架中的第一部分:样本的採集和扩充部分. 在開始代码学习的前面,你须要知道的理论知识參见论文:Real-time Compressive T ...
- systemctl 命令
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...
- [转]MVC 框架教程
Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务逻辑和 UI 逻辑)的分离 ...
- java学习记录--ThreadLocal使用案例
本文借由并发环境下使用线程不安全的SimpleDateFormat优化案例,帮助大家理解ThreadLocal. 最近整理公司项目,发现不少写的比较糟糕的地方,比如下面这个: public class ...
- python 并发编程(socketserver)
下面的例子是简单的ssh 登录,其实也就是客户端把指令发送给服务器.服务器把结果返还给客户端,客户端再在终端展现 服务端代码: #Author:BigBao #Date:2018/7/18 # 我们之 ...
- centos7 安装后需要做的事情
安装centos 7 系统之后要做的几件事 #修改主机名 hostnamectl --static set-hostname xd-1 vim /etc/hosts127.0.0.1 xd-1x.x. ...
- Android 启动、绘制、显示过程
Activity 启动过程: startActivity()-> Instrumentation.execStartActivity()-> Binder->ActivityMana ...
- Mac 设置环境变量
前天配置好了SVN,这里赞下Versions,确实好用! CO了淘宝的TAE,跑startServer.sh时报错: JAVA_HOME does not point at a JDK or JRE. ...
- [svc][cpu][jk]cpu的核心查看及什么是cpu的负载
监控的时候我们会监控cpu的负载,那么什么是负载? 编程时候有多核多线程的概念,那么cpu内部如何运作的? 搞清多少bit cpu? 有几个物理cpu?每个cpu是几核的? 之前购买内存条时候,需要关 ...
- Angular 4.0从入门到实战
AngularJS 优点 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令: 是一个比较完善的前端MVC框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能: ...