zoukankan      html  css  js  c++  java
  • 关于mysql-connector-net在C#中的用法

    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:WindowsMicrosoft.NETFrameworkv2.0.50727Configmachine.config

    C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config

    C:WindowsMicrosoft.NETFramework64v2.0.50727Configmachine.config

    C:WindowsMicrosoft.NETFramework64v4.0.30319Configmachine.config

    文件里加上上面的配置。

    需要注意的是:当机器已经装上了mysql-connector-net驱动的时候,再加这配置就会造成name重复而报错。

    下面给出例子:

    640?wx_fmt=png



    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();


                }


            }


        }

    }


  • 相关阅读:
    进程详解(1)——可能是最深入浅出的进程学习笔记
    贪吃蛇游戏C语言源代码学习
    经典功率谱估计及Matlab仿真
    CAN总线(一)
    实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1
    Linux驱动开发概述
    assert的用法
    基于WDF的PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)
    基于WDF的PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)
    C语言中的union
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351904.html
Copyright © 2011-2022 走看看