日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

关于mysql-connector-net在C#中的用法

發布時間:2023/12/10 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于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:\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();


? ? ? ? ? ? }


? ? ? ? }


? ? }

}


總結

以上是生活随笔為你收集整理的关于mysql-connector-net在C#中的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。