<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或者更高版本。另外,还需要安装MySQL的ODBC驱动程序,下载地址为: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也跟OLEDB,SQL等一样,分别为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
可能大部分的人都不知道这个东西,MySQLDriverCS是MySQL数据库的一个免费开源的.NET驱动程序。和Sql .NET Data Provider是为Sql Server一样,它是专门为MySQL设计的,可以叫做MySQL .NET Data Provider。使用他不需要额外的去设置ODBC数据源,基本上只要能连接到MySQL就能通过MySQLDriverCS来访问。
MySQLDriverCS是SourceForge.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,另外,需要注意的一点是Command的ExecuteReader方法在MySQLDriverCS中变成了ExecuteReaderEx,还有些细微的差别请参考附带的文档详细的介绍。
性能测试
有些读者其实已经看出来我以上写的那段代码的用意,对了,其实目的就是用来进行性能测试的。以上两段代码的执行时间分别是:ODBC.NET为24秒左右,MySQLDriverCS为17秒左右。结果并不出人意外,作为MySQL的专用数据驱动程序,MySQLDriverCS的速度大大快于ODBC.NET是在情理之中的。
总结
本文介绍了两种MySQL数据库访问的方法,同时对它们的性能做了一个简单的测试,希望能为各位读者在采用MySQL数据库开发.NET应用的时候提供一个有价值的参考。
分享到:
相关推荐
该组件为MYSQL为ADO.NET访问MYSQL数据库设计的.NET访问组件。 安装完成该组件后,引用命名空间MySql.Data.MySqlClient; 使用命令行编译时:csc /r:MySql.Data.dll test.cs 下载地址: ...
在.NET 2008开发环境中,连接MySQL数据库通常需要借助特定的数据提供程序,即MySQL Data Provider for .NET。本文将详细介绍如何使用该驱动以及提供一个示例代码,帮助开发者理解并实现.NET 2008与MySQL之间的数据...
在本例中,我们将探讨如何使用ADO.NET和一个名为MySQLDriverCS的驱动程序库来连接并操作MySQL数据库。 首先,MySQLDriverCS是一个非官方的C#驱动,用于连接MySQL数据库,它为C#程序员提供了与MySQL服务器通信的接口...
本主题将深入探讨如何利用ASP.NET控件以数据绑定方式来访问MySQL数据库,而无需编写大量的代码。我们将主要关注以下几个方面: 1. **安装MySQL驱动** 在Visual Studio 2013中使用MySQL数据库,首先需要安装MySQL ...
ASP.NET通用数据库访问组件是一种软件开发工具,它提供了一种标准化的方法来访问各种类型的数据库,如MSSQL(Microsoft SQL Server)、MYSQL(MySQL Server)、ORACLE(Oracle Database)和ACCESS(Microsoft Access...
在这个实例中,我们将深入探讨如何使用Entity Framework (EF) Core来操作MySQL数据库,这是一个强大的ORM(对象关系映射)工具,允许开发者使用C#代码来处理数据库操作,而无需编写SQL语句。 首先,`Startup.cs`是...
ADO.NET对象模型是微软.NET框架中的一个核心组件,主要用于访问关系型数据库,如SQL Server、Oracle、MySQL等。它提供了一套丰富的类库,使得开发者能够高效、灵活地进行数据操作。下面将详细阐述ADO.NET对象模型的...
本文介绍了如何在 .NET Core 中使用 Dapper 操作 Mysql 数据库的实现方法,包括安装 MySql.Data Nuget 包、配置 Mysql 连接字符串、创建 BaseRepository 类和使用 Dapper 操作 Mysql 数据库等。
这个标题"ADO.Net数据库访问(代码示例)"暗示我们将深入探讨如何使用ADO.NET进行数据库的读取、写入和其他相关操作,并通过具体的代码示例来解释这些概念。 首先,ADO.NET的核心组件包括: 1. **DataSet**: 这是一...
在ASP.NET应用中,通常使用ADO.NET(一种.NET Framework提供的数据访问组件)来连接和操作MySQL数据库,执行CRUD(创建、读取、更新、删除)操作。 4. **源代码**:提供源代码意味着这个项目是可学习和可定制的。...
2. **数据访问**:通过DataTable、DataSet等ADO.NET对象,实现对MySQL数据库的数据读取、写入和操作。 3. **事务处理**:支持SQL事务,可以进行原子性操作,确保数据一致性。 4. **命令执行**:允许执行SQL命令,...
本篇文章将详细阐述C# .NET连接MySQL数据库的三种主要方法,以及所需的文件和配置。 一、使用MySQL Connector/NET MySQL Connector/NET是MySQL官方提供的.NET数据提供程序,它允许C#应用直接与MySQL数据库进行通信...
在.NET框架中,连接MySQL数据库通常涉及到使用MySQL的数据提供者——`MySql.Data.dll`库。这个库由Oracle公司提供,允许.NET开发者通过C#等语言与MySQL服务器进行交互。`MySql.Data.dll`提供了丰富的类和方法,使得...
ASP.NET调用MySQL数据库是将.NET框架的ASP.NET应用程序与MySQL数据库进行交互的过程。这个过程通常涉及使用ADO.NET数据提供程序...通过学习和理解这些代码,开发者可以更好地了解如何在ASP.NET项目中集成MySQL数据库。
.NET框架中的C#开发者在与MySQL数据库交互时,通常会依赖于特定的库来实现连接、查询和其他数据库操作。在本场景中,`MySql.Data.dll`是一个关键组件,它是MySQL针对.NET平台提供的官方驱动程序,名为“MySQL ...
本文档主要介绍了如何使用ASP.NET访问MySQL数据库,包括了所需的组件、配置步骤以及基本的数据库操作示例。 1. **ADO.NET驱动**: ADO.NET Driver for MySQL,即`MySql.Data.dll`,是MySQL官方提供的.NET框架下的...