• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#使用开源驱动连接操作MySQL数据库

C#使用开源驱动连接操作MySQL数据库

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#开源项目,c#开源,c#winform开源框架,c#开源社区,c#开源框架等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

前面一篇 http://www.weikejianghu.com/article/61219.htm 讲了 C# 里用 MySQL 官方驱动怎么去连接操作 MySQL 驱动,就是 MySQL 的 JDBC 驱动有两个一样,针对 .NET 的 MySQL 驱动也有两个。这里介绍的就是 .NET 连接 MySQL 的第二个驱动,来自于 Sourceforge 的开源驱动。

首先,到 http://sourceforge.net/projects/mysqldrivercs/ 下载,写此篇时下载的版本是 MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exe。安装,其中带有源代码和例子,只有三个动态库 libmySQL-4.0.dll、libmySQL.dll、MySQLDriverCS.dll,光看动态库好像不及官版的驱动强大。把安装目录中的 MySQLDriverCS.dll 引入到你的 C# 项目中就可以开始用了。具体用法还需时刻关注安装目录中的 help\SDK\Documentation.chm 帮助文档。

也还是围绕着这么几个问题来展开:

基本的用法,如连接字符串的写法,基本查询操作,大概会用到哪些类
异常的处理
事物的处理
参数化的查询支持

这次我会在一个例子中涉及到以上四个方面,下面这个片代码有点混乱,使用时请读懂来,然后才能各取所需:

using System;
using System.IO;
 
using MySQLDriverCS; //引入的命名空间就这个
using System.Data.Common;
 
namespace cc.unmi
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //MySQLDriverCS 有了 MySQLConnectionStringBuilder 和 MySQLConnectionString 来构造连接字符串
            //其实反而有点故弄玄虚,也许是以前直接用连接字符串习惯了
            MySQLConnectionString conStr = new MySQLConnectionString("localhost", "unmi_db", "unmi", "xxxxxx");
 
            //从 MySQLConnectionStringBuilder 来看似乎可支持的属性较少,不知道连接池那些功能怎么样
            //string connStr = "Data Source=unmi_db;Password=xxxxxx;User ID=unmi;Location=localhost;Port=3306;Extended Properties=";
 
            MySQLConnection conn = new MySQLConnection(conStr.AsString); //或 new MySQLConnection(connStr);
 
            conn.Open();
 
            //参数用 @, 同样支持 ? 的方式, 应该也是不推荐用 ? 的形式
            //string sql = "update wp_options set option_value='http://unmi.cc' where option_id=?id and <a href="mailto:option_name=@name">option_name=@name</a>";
            string sql = "select option_name from wp_options where option_id=?id and <a href="mailto:option_name=@name">option_name=@name</a>";
 
            MySQLCommand com = new MySQLCommand(sql, conn);
 
            MySQLParameter paraId = new MySQLParameter("?id", 1);
            MySQLParameter paraName = new MySQLParameter("@name", "siteurl");
 
            //其实是加在 MySQLParameterCollection 里的
            //看起来与 AddWithValue() 有异曲同功之妙,比如可写成 com.Parameters.Add(new MySQLParameter("@id",1);
            com.Parameters.Add(paraId);
            com.Parameters.Add(paraName);
 
            //如果是查询
            //MySQLDataReader dr = com.ExecuteReaderEx();//执行 ExecuteReaderEx() 返回的才是 MySQLDataReader
 
            DbTransaction trans = conn.BeginTransaction(); //开启事物
 
            try
            {
                //com.ExecuteNonQuery();
                //还要执行更多的语句时应使用事物
                Console.WriteLine(com.ExecuteScalar().ToString());
                trans.Commit();
            }
            catch (MySQLException ex)
            {
                Console.WriteLine(ex.Message);
                trans.Rollback();
            }
            finally
            {
                conn.Close();
            }
 
            Console.ReadKey();
        }
    }
}
</div>

虽说那个驱动文件名中有 DotNet2.0 字样,应该只要是 2.0 及以上的 .Net 运行时就行的,我是在 32 位的 XP 下,Visual Studio 2008 中,用 .Net 3.5 来跑的,没有问题。

备注一下,在我家里的电脑上却是运行不起来,提示是:
{"Could not load file or assembly 'MySQLDriverCS, Version=3.0.1735.36021, Culture=neutral, PublicKeyToken=172f94dfb0faf263' or one of its dependencies. An attempt was made to load a program with an incorrect format."}
</div>

又是我那可恶的 64 位 XP,它只能支持 32 位的应用,与官版的驱动表现不一样。官版的 MSI 程序不能在我的 64 位系统下安装,但安装包中的 .dll 是可在 64 位下用。而这个版本的驱动是能安装,但用起来告诉我不行,明摆着是甩我。其实在下载驱动的网页上有注明用了 32 位的各种 Winows 操作系统云云。

最后简单说下与官版的驱动的少许差异,连接字符串上没有官版驱动丰富,且不知对连接池的支持如何。在用参数化查询设置参数时,虽然比标签的 ADO.Net 方便,便比起官版的可用 AddWithValue() 方法稍微逊色。再就是在 64 位下根本无法运行,这可不能不算是个致使伤,服务器下 64 位系统在所难免。

然而这个开源驱动也有些独到之处,那就是它提供的 MySQLInsertCommand、MySQLSelectCommand、MySQLUpdateCommand 和 MySQLDeleteCommand 类方便了数据操作,不需要你显式的去写 SQL 语句,很像 WordPress 的 $wpdb 中相应的几个函数:$wpdb->inser

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#使用开源驱动连接操作MySQL数据库

相关文章

  • 2017-05-28C#中is与as的区别分析
  • 2017-05-28在C#中新手易犯的典型缺陷
  • 2017-05-28C# 超高面试题收集整理
  • 2017-05-28C#实现AddRange为数组添加多个元素的方法
  • 2017-05-28C#创建一个小型Web Server(Socket实现)
  • 2017-05-28深入讲解C#编程中嵌套类型和匿名类型的定义与使用
  • 2017-05-28浅拷贝和深拷贝深入理解(shallow copy VS deep copy)
  • 2017-05-28C#编程实现向并口设备发送指令、获取并口设备的状态
  • 2017-05-28经典的委托排序(深入分析)
  • 2017-05-28浅谈C#指针问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#检查远程或本地磁盘使用率
    • C#从windows剪贴板获取并显示文本内容的方法
    • C#中将字符串转换为整型的三种解决方法总结
    • C# byte数组与Image相互转换的方法
    • c# 引用类型与值类型的区别详解
    • C# MeasureString测量字符串函数的使用方法
    • CDMA 猫用AT命令发中文短信(C#)
    • 相对路径和绝对路径的写法总结
    • C# 操作符之二 算数操作符
    • 基于C#实现的木马程序实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有