【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 ...
随机推荐
- 恢复Ext3下被删除的文件
下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt 15 -rw-rw-r– 2 root root ...
- 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
[059-Spiral Matrix II(螺旋矩阵II)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given an integer n, generate a ...
- linux 命令中的find locate whereis which type 使用区别
find 最强大,但参数也较多,需指定查找目录,如 find / -name “filename” locate 是一个快速查找命令,有预先索引好的数据库,由于数据库是定时更新,因此,结果上可能会有迟 ...
- proguard的简单配置说明
#需要转换的jar文件路径-injars 'D:\fs-np.jar'#转换后的jar文件名称-outjars 'D:\fs-np-sec.jar' #关联的第三方jar-libraryjars 'C ...
- [转]PostgreSQL教程:系统表详解
这篇文章主要介绍了PostgreSQL教程(十五):系统表详解,本文讲解了pg_class.pg_attribute.pg_attrdef.pg_authid.pg_auth_members.pg_c ...
- 在js中嵌套java代码
jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 <% // ...
- mysql group replication 主节点宕机恢复
一.mysql group replication 生来就要面对两个问题: 一.主节点宕机如何恢复. 二.多数节点离线的情况下.余下节点如何继续承载业务. 在这里我们只讨论第一个问题.也就是说当主结点 ...
- JavaScript 循环:如何处理 async/await
如何串行或者并行运行异步循环? 在使用循环处理异步的魔法之前,我们先来看下我们是怎么处理同步循环的. 同步循环 很久以前我写的循环是这样的: for (var i = 0; i < array. ...
- python sort和sorted函数
sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 ...
- php分享二十八:mysql运行中的问题排查
一:杀掉mysql连接的方法: kill thread_id: 杀掉当前进程,断开连接 kill query thread_id: 只杀掉某连接当前的SQL,而不断开连接. 批量杀死MySQL连接的 ...