使用godaddy已经3年多,长久以来一直使用asp.net+access数据库,godaddy提供的mssql数据库对于我来说基本属于鸡肋,太小还有些许限制。godaddy提供的mysql数据库挺好,买了无限主机会有1G*无限个数的mysql。看着眼馋啊。
前一段已经折腾了很久了,为了正常使用godaddy提供的mysql数据库,我进行了很多尝试,前期使用oleddb和odbc方式连接mysql数据库也都尝试成功了,可数据库中文乱码问题一直没有解决,郁闷之极。
昨晚突然想到何不尝试一下mysql自家提供的组件mysql connector net会有什么效果呢,也许就解决了godaddy空间mysql数据库中文乱码问题了呢。
今天早上上班就开始尝试,参照了一个老外的博客文章,经过一番折腾终于成功,记录我们能看懂的中文步骤如下(看英文文章浪费了不少脑细胞):
首先,要从mysql网站下载mysql connector net组件安装包。可以点击这里下载 。下载后安装它。
然后新建一个asp.net项目,至于.net框架版本,只要是2.0以上就行。
在项目里添加对mysql connector net组件的引用,对于winform来说应该是引用mysql.data.dll即可,对于asp.net还要引用一个mysql.web.dll,这两个文件分别在刚才安装的mysql connector net组件的安装目录 "D:\Program Files\MySQL\MySQL Connector Net 5.2.3\Binaries\.NET 2.0\mysql.data.dll" 和 "D:\Program Files\MySQL\MySQL Connector Net 5.2.3\Web Providers\mysql.web.dll",这里注意,我的默认安装到d盘了,要根据实际情况去找自己的文件哦。[悟空原创文章,打字不容易,转载请留名www.7es.cn]
添加完引用还得修改web.config添加对mysql引擎的支持节点,这个至于不添加行不行我也没测试,不要偷懒,还是添加上为好,想折腾的朋友可以自己试试不添加会不会成功。添加位置是在<system.web>节点里,添加下面一段标签
- <membership defaultProvider="MySQLMembershipProvider">
- <providers>
- <clear/>
- <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="currentCS" applicationName="/" passwordFormat="hashed" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false"/>
- </providers>
- </membership>
- <roleManager enabled="true" defaultProvider="MySQLRoleProvider">
- <providers>
- <clear/>
- <add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="currentCS" applicationName="/"/>
- </providers>
- </roleManager>
最后,开始写代码呗,我就在页面里写了一段测试代码,方法和使用sqlserver数据库或者access数据库的是一样的,没什么区别
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Data.OleDb;
- using System.Data;
- using MySql.Data.MySqlClient;
- namespace s
- {
- public partial class _Default : System.Web.UI.Page
- {
- /// <summary>
- /// 悟空注:下面的代码里服务器地址和数据库名等我标注为中文了,各自根据自己情况修改代码即可
- /// 悟空的博客 www.7es.cn
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void Page_Load(object sender, EventArgs e)
- {
- // 悟空的博客 www.7es.cn
- MySqlConnection conn = new MySqlConnection("Server=服务器地址; Port=3306; Database=数据库名; Uid=用户名; Pwd='密码';");
- conn.Open();
- MySqlCommand cmd = new MySqlCommand("select * from 表名", conn);
- MySqlDataReader dr = cmd.ExecuteReader();
- if (dr.Read())
- {
- Response.Write(dr["字段名"].ToString());
- }
- dr.Close();
- dr.Dispose();
- cmd.Dispose();
- Response.Write("<br>end");
- }
- }
- }
在godaddy主机空间使用asp.net连接mysql数据库成功,中文不乱码了。 悟空原创文章,转载请保留链接 http://www.7es.cn/Software_development/godaddy-hosting-asp-net-use-mysql.shtml
代码写好了,代码里服务器地址、用户名什么的改成自己的实际的godaddy空间的mysql数据库连接信息,就可以上传到godaddy空间里测试了,看看你的mysql数据库存中文读取出来还是不是乱码,呵呵,很好。
欢迎遇到此类问题的朋友跟我交流,我的博客www.7es.cn ,网上用godaddy空间的朋友不少,像我一样实际遇到godaddy空间asp.net连接mysql有乱码问题的朋友好像也有,不过最终解决的好像没见谁发布方法,不容易,大家相互帮助吧,祝大家的网站越做越好。
最后忘了说一声了,一定要注意,编译后的代码bin目录不包含mysql.data.dll和mysql.web.dll,要从原目录里复制过来一并传到空间里,不然会出错提示找不到程序集的。