`
isiqi
  • 浏览: 16595132 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

如何在.NET中访问MySQL数据库

阅读更多

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 9.75pt" o:button="t" href="http://blog.csdn.net/bgu/articles/125343.aspx" alt="" type="#_x0000_t75"><imagedata o:href="http://blog.csdn.net/images/zhuan.gif" src="file:///C:%5CDOCUME~1%5CWANGLI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.gif"></imagedata></shape>如何在.NET中访问MySQL数据库

如果你不是只在大集团公司工作过的话,你一定会有机会接触到MySQL,虽然它并不支持事务处理,存储过程,但是它提供的功能一定能满足你的大部分需求,另外,简洁的MySQL也有一些它独到的优势,在有些时候,它的速度甚至超过大型数据库。

那么如何在.NET中访问MySQL数据库呢?也许很多人马上会说:用OLEDB嘛,但是事实上采用.NET OleDb Data Provider并不能访问MySQL,如果你使用的话,系统会提示你:"Net Data OLE DB 提供程序 (System.Data.Odbc) 不支持 MSDASQL 提供程序(用于 Odbc 驱动程序的 Microsoft OLE DB 提供程序)。",是什么原因我并不知道,按照MySQLDriverCS的作者的说法就是它被"abandoned by the owner",呵呵,兴许还有些故事。

幸好,我们还有其它的选择,这里就要介绍两种访问MySQL数据库的办法。

使用ODBC.NET

ODBC.NET(全称ODBC .NET Data Provider)是一个免费的.NET Framework附加组件,需要到微软公司的网站上去下载,下载地址为:http://download.microsoft.com/download/dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi,它需要系统已经安装MDAC 2.7或者更高版本。另外,还需要安装MySQLODBC驱动程序,下载地址为:http://www.mysql.com/downloads/api-myodbc-2.50.html,还需要在"ODBC数据源管理器"中配置一下DSN,如下图所示:

<shape id="_x0000_i1026" style="WIDTH: 349.5pt; HEIGHT: 286.5pt" alt="" type="#_x0000_t75"><imagedata o:href="http://www.microsoft.com/china/community/Columns/Luyan/image/DOTNETMySQL_1.gif" src="file:///C:%5CDOCUME~1%5CWANGLI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.gif"></imagedata></shape>

在对象的设计上,ODBC.NET也跟OLEDBSQL等一样,分别为OdbcConnection, OdbcCommand, OdbcDataAdapter, OdbcDataReader,用法也完全一样,如果你希望用ODBC .NET来代替以前的OleDb .NET Data Provider,事实上完全可以通过查找替换的办法来修改你的程序。

以下是一段代码示例:

Try

{

string constr = "DSN=MySQL;" + "UID=;" +"PWD="; ;

conn = new OdbcConnection(constr);

conn.Open();

string query = "insert into test.dbtable values10,'disksidkfsdi', 'asdfaf', 'adsfasdf')";

string tmp = null;

OdbcCommand cmd = new OdbcCommand(query, conn);

for(int i = 0; i < 100000; i++)

{

cmd.ExecuteNonQuery();

}

cmd.Dispose();

conn.Close();

query = "select * from test.dbtable"; OdbcCommand cmd2 = newOdbcCommand(query, conn);

conn.Open();

OdbcDataReader reader = cmd2.ExecuteReader();

while(reader.Read())

{

tmp = reader[0].ToString();

tmp = reader[1].ToString();

tmp = reader[2].ToString();

tmp = reader[3].ToString();

}

conn.Close();

query = "delete from test.dbtable";

OdbcCommand cmd3 = newOdbcCommand(query, conn);

conn.Open();

cmd3.ExecuteNonQuery();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

只要是用C#写过数据库应用的人一定能知道,上面的代码执行了十万次插入数据和读取数据,最后将数据记录全部删除的操作。

使用MySQLDriverCS

可能大部分的人都不知道这个东西,MySQLDriverCSMySQL数据库的一个免费开源的.NET驱动程序。和Sql .NET Data Provider是为Sql Server一样,它是专门为MySQL设计的,可以叫做MySQL .NET Data Provider。使用他不需要额外的去设置ODBC数据源,基本上只要能连接到MySQL就能通过MySQLDriverCS来访问。

MySQLDriverCSSourceForge.NET上的一个项目,不过不知道什么原因,这个网站在国内访问不到。

下面是使用MySQLDriverCS的代码示例:

MySQLConnection conn = null;

Try

{

string connstr = "Data Source=MySQL;Password=root;User ID=root;Location=localhost";

conn = new MySQLConnection(constr); conn.Open();

string query = "insert into test.dbtable values(10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";

string tmp = null;

MySQLCommand cmd = new MySQLCommand(query, conn);

for(int i = 0; i < 100000; i++)

{

cmd.ExecuteNonQuery();

}

cmd.Dispose();

conn.Close();

query = "select * from test.dbtable"; MySQLCommand cmd2 = new MySQLCommand(query, conn);

conn.Open();

MySQLDataReader reader = cmd2.ExecuteReaderEx();

while(reader.Read())

{

tmp = reader[0].ToString();

tmp = reader[1].ToString();

tmp = reader[2].ToString();

tmp = reader[3].ToString();

}

conn.Close();

query = "delete from test.dbtable"; MySQLCommand cmd3 = new MySQLCommand(query, conn);

conn.Open();

cmd3.ExecuteNonQuery();}catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

Finally

{

conn.Close();

}

和上面的那段代码几乎一模一样,所不同的是Odbc变成了MySQL,另外,需要注意的一点是CommandExecuteReader方法在MySQLDriverCS中变成了ExecuteReaderEx,还有些细微的差别请参考附带的文档详细的介绍。

性能测试

有些读者其实已经看出来我以上写的那段代码的用意,对了,其实目的就是用来进行性能测试的。以上两段代码的执行时间分别是:ODBC.NET24秒左右,MySQLDriverCS17秒左右。结果并不出人意外,作为MySQL的专用数据驱动程序,MySQLDriverCS的速度大大快于ODBC.NET是在情理之中的。

总结

本文介绍了两种MySQL数据库访问的方法,同时对它们的性能做了一个简单的测试,希望能为各位读者在采用MySQL数据库开发.NET应用的时候提供一个有价值的参考。

分享到:
评论

相关推荐

    ASP.NET连接MYSQL的三种方法

     该组件为MYSQL为ADO.NET访问MYSQL数据库设计的.NET访问组件。  安装完成该组件后,引用命名空间MySql.Data.MySqlClient;  使用命令行编译时:csc /r:MySql.Data.dll test.cs 下载地址: ...

    .net 2008 连接mysql 数据库驱动及例子

    在.NET 2008开发环境中,连接MySQL数据库通常需要借助特定的数据提供程序,即MySQL Data Provider for .NET。本文将详细介绍如何使用该驱动以及提供一个示例代码,帮助开发者理解并实现.NET 2008与MySQL之间的数据...

    ADO.NET C# 连接MySQL数据库的类库 非常好用的哦!

    在本例中,我们将探讨如何使用ADO.NET和一个名为MySQLDriverCS的驱动程序库来连接并操作MySQL数据库。 首先,MySQLDriverCS是一个非官方的C#驱动,用于连接MySQL数据库,它为C#程序员提供了与MySQL服务器通信的接口...

    asp.net控件访问MySql数据库

    本主题将深入探讨如何利用ASP.NET控件以数据绑定方式来访问MySQL数据库,而无需编写大量的代码。我们将主要关注以下几个方面: 1. **安装MySQL驱动** 在Visual Studio 2013中使用MySQL数据库,首先需要安装MySQL ...

    ASP.NET通用数据库访问组件

    ASP.NET通用数据库访问组件是一种软件开发工具,它提供了一种标准化的方法来访问各种类型的数据库,如MSSQL(Microsoft SQL Server)、MYSQL(MySQL Server)、ORACLE(Oracle Database)和ACCESS(Microsoft Access...

    ASP.Net Core MVC 使用EF操作MySQL数据库完整实例

    在这个实例中,我们将深入探讨如何使用Entity Framework (EF) Core来操作MySQL数据库,这是一个强大的ORM(对象关系映射)工具,允许开发者使用C#代码来处理数据库操作,而无需编写SQL语句。 首先,`Startup.cs`是...

    ADO.NET对象模型访问数据库

    ADO.NET对象模型是微软.NET框架中的一个核心组件,主要用于访问关系型数据库,如SQL Server、Oracle、MySQL等。它提供了一套丰富的类库,使得开发者能够高效、灵活地进行数据操作。下面将详细阐述ADO.NET对象模型的...

    【ASP.NET编程知识】.NET Core Dapper操作mysql数据库的实现方法.docx

    本文介绍了如何在 .NET Core 中使用 Dapper 操作 Mysql 数据库的实现方法,包括安装 MySql.Data Nuget 包、配置 Mysql 连接字符串、创建 BaseRepository 类和使用 Dapper 操作 Mysql 数据库等。

    ADO.Net数据库访问(代码示例)

    这个标题"ADO.Net数据库访问(代码示例)"暗示我们将深入探讨如何使用ADO.NET进行数据库的读取、写入和其他相关操作,并通过具体的代码示例来解释这些概念。 首先,ADO.NET的核心组件包括: 1. **DataSet**: 这是一...

    Mysql+asp.net 数据库管理源代码

    在ASP.NET应用中,通常使用ADO.NET(一种.NET Framework提供的数据访问组件)来连接和操作MySQL数据库,执行CRUD(创建、读取、更新、删除)操作。 4. **源代码**:提供源代码意味着这个项目是可学习和可定制的。...

    MySQL数据库.NET开发驱动(mysql Connector/Net ) 8.0.9 官方最新版

    2. **数据访问**:通过DataTable、DataSet等ADO.NET对象,实现对MySQL数据库的数据读取、写入和操作。 3. **事务处理**:支持SQL事务,可以进行原子性操作,确保数据一致性。 4. **命令执行**:允许执行SQL命令,...

    C# .net连接mysql数据库的方法大全

    本篇文章将详细阐述C# .NET连接MySQL数据库的三种主要方法,以及所需的文件和配置。 一、使用MySQL Connector/NET MySQL Connector/NET是MySQL官方提供的.NET数据提供程序,它允许C#应用直接与MySQL数据库进行通信...

    关于.NET连接Mysql数据库的底层类实例和MySql.Data.dll

    在.NET框架中,连接MySQL数据库通常涉及到使用MySQL的数据提供者——`MySql.Data.dll`库。这个库由Oracle公司提供,允许.NET开发者通过C#等语言与MySQL服务器进行交互。`MySql.Data.dll`提供了丰富的类和方法,使得...

    ASP.NET调用mySql数据库的类库

    ASP.NET调用MySQL数据库是将.NET框架的ASP.NET应用程序与MySQL数据库进行交互的过程。这个过程通常涉及使用ADO.NET数据提供程序...通过学习和理解这些代码,开发者可以更好地了解如何在ASP.NET项目中集成MySQL数据库。

    .net访问mysql数据库必须的文件MySql.Data.dll(2019-03最新版 v8.0.15.0)

    .NET框架中的C#开发者在与MySQL数据库交互时,通常会依赖于特定的库来实现连接、查询和其他数据库操作。在本场景中,`MySql.Data.dll`是一个关键组件,它是MySQL针对.NET平台提供的官方驱动程序,名为“MySQL ...

    一个简单的ASP.NET访问MySql数据库.doc

    本文档主要介绍了如何使用ASP.NET访问MySQL数据库,包括了所需的组件、配置步骤以及基本的数据库操作示例。 1. **ADO.NET驱动**: ADO.NET Driver for MySQL,即`MySql.Data.dll`,是MySQL官方提供的.NET框架下的...

Global site tag (gtag.js) - Google Analytics