关于mysql-connector-net和C#.net

mysql-connector-net-8.0.11.msi 可以从这里下载: mysql-connector-net-8.0.11
 
如果使用ado.net链接mysql数据库则只需要引用  MySql.Data.dll即可,并不需要安装mysql-connector-net驱动程序;
如果使用EF的话需要安装mysql-connector-net驱动程序和mysql-for-visualstudio 这个vs里面链接数据源的插件,否则EF无法使用VS视图模型的浏览和创建以及更新数据库实体;
 
其中mysql-connector-net驱动程序安装目录包含了
MySql.Data.dll;
MySql.Data.Entity.EF5.dll;
MySql.Data.Entity.EF6.dll;
MySql.Fabric.Plugin.dll;
MySql.Web.dll;
 
注意:就算把mysql-connector-net安装目录下所有的类库都拷到bin目录而不在应用站点服务器上安装mysql-connector-net驱动程序,EF代码还是会报错,因为mysql-connector-net安装不仅装了各种dll类库,还写过机器上.net环境的全局的machine.config里加过
<system.data>
  <DbProviderFactories>
  <add name="MySQL Data Provider"
  invariant="MySql.Data.MySqlClient"
  description=".Net Framework Data Provider for MySQL"
  type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.6.0, Culture=neutral,        PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>,
所以要使用EF必须在站点服务器安装mysql-connector-net启动程序(数据库所在的服务器不需要安装,只需要C#程序所运行的电脑需要安装)或者在应用的web.config文件里configuration节点下加上上面的配置
或者在应用所在机器的
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Config\machine.config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
 
文件里加上上面的配置。
 
需要注意的是:当机器已经装上了mysql-connector-net驱动的时候,再加这配置就会造成name重复而报错。
 
下面给出例子:
 
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
/*
 本程序使用 MySql.Data.dll 链接Mysql数据库,读取服务器中所有数据库的名称,显示在界面上。HoverTree
     */

namespace MysqlHoverTree
{
    public partial class Form1 : Form
    {

        private MySqlConnection _conn;

        public Form1()
        {
            InitializeComponent();
        }

        private void button_connect_Click(object sender, EventArgs e)
        {
            if (_conn != null)
                _conn.Close();

            string h_connString = "server=localhost;user id=root; password=123456; port=3306; database=mysql; pooling=false; charset=utf8";//根据实际修改

            try

            {

                _conn = new MySqlConnection(h_connString);

                _conn.Open();



                GetDatabases();

                MessageBox.Show("连接数据库成功!");

            }

            catch (MySqlException ex)

            {

                MessageBox.Show("Error connecting to the server: " + ex.Message);

            }
        }

        private void GetDatabases()

        {

            MySqlDataReader reader = null;

            MySqlCommand cmd = new MySqlCommand("SHOW DATABASES", _conn);



            try

            {

                reader = cmd.ExecuteReader();

                listBox_database.Items.Clear();

                while (reader.Read())

                {

                    listBox_database.Items.Add(reader.GetString(0));

                }

            }

            catch (MySqlException ex)

            {

                MessageBox.Show("Failed to populate database list: " + ex.Message);

            }

            finally

            {

                if (reader != null) reader.Close();

            }

        }

    }
}

 

转载于:https://www.cnblogs.com/hlhx/p/mysql-connector-net.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值