ASP.NET默认的数据库是MS SQL Server,微软的数据库产品。事实上,如果不计成本因素的话,Windows Server + IIS + MS SQL Server + ASP.NET是网站应用开发的最优搭配。但是,由于这些微软产品都需要收费,因此,在考虑成本因素时,往往在开发环境ASP.NET不变的情况下,其它产品都选择了开源的产品。
MySQL是一个优秀的开源数据库,现在谈谈如何使用ASP.NET连接MySQL数据库(Windows环境下)。
1、安装MySQL数据库系统,截止本文撰写时间,MySQL的版本为5.6.16,可以到官网http://dev.mysql.com/downloads/mysql/访问下载安装,注意安装选择Microsoft Windows平台;
2、引用MySQL connector/Net组件,该组件在安装MySQL安装目录内,比如本人电脑上的目录是:
C:\Program Files (x86)\MySQL\Connector NET 6.7.4\Assemblies\v4.5\MySQL.Data.dll
或者到官网上下载http://dev.mysql.com/downloads/connector/net/最新版本的MySQL connector/Net组件
需要说明的是,如果在正常安装MySQL数据库后,又更新了MySQL Connector/Net组件,则会出现版本不同的问题,这需要将ASP.NET中machine.config里面关于MySQL引用MySQL Connector/Net组件版本的语句注释掉即可;
引用MySQL connector/Net组件的办法是在ASP.NET项目引用中添加地MySQL.Data.dll的引用,如下图所示:
3-1、使用下面的代码完成对数据库的连接:
using MySql.Data.MySqlClient;namespace ConnectMySql { class Class1 { public MySqlDataReader GetData() { string connection = "server=localhost;user id=root;password=123456;database=ABC; pooling=true;"; MySqlConnection conn = new MySqlConnection(connection); string sqlQuery = "SELECT * FROM Article"; MySqlCommand comm = new MySqlCommand(sqlQuery, conn); conn.Open(); MySqlDataReader dr = comm.ExecuteReader(); conn.Close(); return dr; } } }
代码注意两点:一是使用using MySql.Data.MySqlClient; 二是写好连接字符串connection,当然,这个连接字符串可以不象上面那样写在具体的代码中,而是推荐写在ASP.NET应用的根目录中的配置文件web.config的<connectionStrings>节内,如下:
3-2、在web.config中配置连接字符串完成对MySQL数据库的连接(推荐,替代方法3-1)
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Sanlogic.MSTWebsite-20140219093639;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Sanlogic.MSTWebsite-20140219093639.mdf" providerName="System.Data.SqlClient" /> <add name="DBConnection" connectionString="server=localhost;user id=root;password=123456;database=ABC; pooling=true;" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
其中DBConnection即是对MySQL的连接,如果是这样的配置连接字符串,可以使用下面的代码将其取出(注意仍然有 using MySql.Data.MySqlClient; 语句):
public static MySqlConnection CreateConn() { string _conn = WebConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString; MySqlConnection conn = new MySqlConnection(_conn); return conn; }
使用这种办法取出连接字符串并建立对数据库的连接,今后的使用直接调用该方法创建对MySQL数据库的连接,并使用ADO.NET完成任务。