asp.net 自身没有 mysql的连接组件,必须借助外界的组件,但通常在本机测试好后,传到空间商的虚拟主机上,结果不能用,问他们,他们说没有安装你用的组件,他们不建议用asp.net连接mysql,没有权限, 建议用php连接。 请问连接mysql必须用安装组件吗? 拷到bin下面不行吗? 目前最好用,使用方法最接近mssql的连接mysql的组件是什么?

解决方案 »

  1.   

    ASP.NET连接MySQL需要一个组件(.net本身不提供访问MySQL的驱动)MySQL.Data.Dll,此为官方提供(纯C#开发,开源噢),有多个版本选择,采用的数据访问模式为ADO.NET,跟asp.net访问sqlserver很像,非常简单。下载(里边有个demo):http://dev.mysql.com/downloads/connector/net/5.1.htmlMysql的connector/net5.0下载地址:
    http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.6.zip/from/pick
    安装好以后,
    点属性,然后点查找目标,点向上一层目录,找到Binaries.NET 2.0,然后将这个文件复制到你的工程目录下,一般这样的DLL文件会保存到bin目录下.
    在代码页里输入using Mysql.Data.MysqlClient;然后再在Page_Load函数里写MysqlConnection,在单词写到一半时提示就出来了,下面的就不用写了吧?都已经出现”代码智能完成了”,随便写一段代码试试就可以了,和Sqlserver完全相似.下面提供两段代码供参考,一个代码页,一个是HTML页:
    default2.aspx.cs下的代码:using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using MySql.Data.MySqlClient;public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string query = "select * from guestbook";
            MySqlConnection myConnection = new MySqlConnection("server=localhost;user id=root;password=;database=guestbook"); 
            MySqlCommand myCommand=new MySqlCommand(query,myConnection);
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            MySqlDataReader myDataReader = myCommand.ExecuteReader();
            string bookres="";
            while (myDataReader.Read()==true)
            {
                bookres+=myDataReader["id"];
                bookres+=myDataReader["user"];
                bookres += myDataReader["pass"];
            }
            myDataReader.Close();
            myConnection.Close();
            lb1.Text = bookres;
        }
    }default2.aspx下的代码<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
    <asp:label ID=lb1 runat=server/>
        <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
    </body>
    </html>
    以上结果在visual web Developer2005(速成版)下测试通过!相信在visual studio 2005中也可以通过!另一种方式(大同小异)把Mysql connector/net 5.1装上,然后到安装目录中找到MySql.Data.dll,将此文件拷贝到项目的bin目录下然后将using MySql.Data.MySqlClient; 这句红色的语句写到using那几行的下面。就可以了!快上手说的正确的做法是将以前写的SQLserver 代码改写成mysql的,而改写的部分也很少,因为二者格式几乎一样.当然这么便利的接口要归功于Mysql的官方了.呵呵,
    using MySql.Data.MySqlClient;........ 
    MySqlConnection myConnection=new MySqlConnection("server=localhost;user id=root;password=XXXX;database=baby"); 
    string sql="select * from admin"; 
    MySqlDataAdapter myda=new MySqlDataAdapter(sql,myConnection); 
    DataSet mydataset=new DataSet(); 
    myda.Fill(mydataset,"admin"); 
    mydatagrid.DataSource=mydataset; 
    mydatagrid.DataBind();
      

  2.   

    http://topic.csdn.net/u/20100304/19/213b0bd9-9103-413d-96ae-062518d2f632.html
      

  3.   

    这样空间商没安装这个mysql-connector-net-5.0.6.组件,网站程序也是可以用的吧