准备工作

在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数据库的更多相关文章

  1. 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 ...

  2. MySql.Data.MySqlClient连接MySql

    在C#中连接MySql数据库其实是件很简单的事情,但对于刚开始学习C#的朋友来说,问题却是不小,主要原因是相对于ACCESS和MSSql来说,MySql方面的教程文章实在太少,我也是自己摸索好好半天才 ...

  3. log4net引用了Mysql.Data.dll,但是就是不能写到mysql数据库的解决办法

    这两天遇到log4net写日志到mysql数据库中,有时候在A项目中可以,有时候B项目就有问题,有时候测试环境没问题,到正式部署环境又出问题,经过两天的煎熬,终于理清楚了其中的头绪. 1.配置现状 c ...

  4. Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载

    MySqlHelper.cs代码如下: using System; using System.Collections.Generic; using System.Linq; using System. ...

  5. .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper

    .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary> /// MySql ...

  6. Silverlight用户无法注册之MySql.Data.dll不一致

    本篇博文记录本人解决一个"用户无法注册"的问题的过程 1 问题描述: 用户可以删除:但不能注册,也不能修改权限: 图 1用户注册失败 图 2修改用户权限出错 2 解决过程 1)粗暴 ...

  7. MySql.Data.dll官网下载

    Mysql.Data.dll官网下载 在项目开发中链接MySQL数据库经常要用到Mysql.Data.dll,网上虽然有很多,但是还是比较信赖官网的 今天就从官网下载一次记录一下过程 1.下载地址 官 ...

  8. 关于Linux和Windows下部署mysql.data.dll的注册问题

    mysql ado.net connector下载地址: http://dev.mysql.com/downloads/connector/net/ 选择版本: Generally Available ...

  9. 使用Mysql.data.dll文件在服务器上运行访问Mysql

    我使用的这个Mysql.data.dll文件 web.config上面主要需要声明以下代码 <system.data> <DbProviderFactories> <ad ...

随机推荐

  1. Linux查看当前网卡流量

    sar(system activity reporter) sar通过cron定时调用执行收集和记录信息,默认是10分钟执行一次. # more /etc/cron.d/sysstat # Run s ...

  2. “21天教你学会C++”

    下面是一个<Teach Yourself  C++ in 21 Days>的流程图,请各位程序员同仁认真领会.如果有必要,你可以查看这个图书以作参照:http://www.china-pu ...

  3. MPU6050陀螺仪和加速度计的校准

    加速度计和陀螺仪的校准: 在传感器静止不动水平放置时,测出陀螺仪和加速度计各轴的偏移值,保存.以后每次上电调用dmp_set_xx_bias()就行了. u8 run_self_test(void) ...

  4. 【转载】抓包工具Fidder详解(主要来抓取Android中app的请求) 包括https

    文章:http://blog.csdn.net/jiangwei0910410003/article/details/19806999/ Fiddler官网:http://www.telerik.co ...

  5. Knockout: 使用knockout validation插件进行校验, 给未通过校验的输入框添加红色边框突出显示.

    之前整理了三篇帖子: Knockout: 使用CSS绑定和event的blur失去焦点事件, 给未通过校验的输入框添加红色边框突出显示. http://www.cnblogs.com/liuzhend ...

  6. SNF.Net 快速开发平台Spring.Net.Framework 诞生的由来与规划

    没有快速开发平台的时候只能感慨自己曾经浪费了那么多精力在拖拽控件上,总写重复的代码,却花了很多精力且不能体现自己的价值.SNF快速开发平台能把你解放出来,让你有更多的时间参与到核心业务逻辑中去,让你有 ...

  7. 为什么推荐你用 Kotlin语言?

    谷歌大牛说:为什么 Kotlin 比你们用的那些垃圾语言都好 原标题:谷歌大牛说:为什么 Kotlin 比你们用的那些垃圾语言都好 编译:伯乐在线/黄小非 [伯乐在线/程序员的那些事 导读]:5月18 ...

  8. 关于jquery 取值,赋值常用控件的问题

    一.文本框 对于单个文本框: 1.获取文本框: $("#id").val() 2.赋值: $("#id").val("赋值"); 或 (清空 ...

  9. 【python】pycharm常用配置快速入门。

    俗话说,工欲善其事必先利其器.当我们想从事一门新的语言的时候,最重要的是熟悉其常用的编辑器的配置.刚好这两天在学习python,网上看到一篇比较好的文章,转载过来自己学习一下.感谢:https://s ...

  10. Spring+Mybatis整合过程中找不到.properties文件

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' ...