由於工作需要,從本地Sqlite資料庫轉為MySql資料庫。遇到了一些坑,隨後又埋了。記錄下過程: 一、安裝MySql 首先上官網下載windows版的MySql.解壓。詳情是參考了幾位同鞋的文章: https://www.cnblogs.com/LxyXY/p/7708016.html MySql ...
由於工作需要,從本地Sqlite資料庫轉為MySql資料庫。遇到了一些坑,隨後又埋了。記錄下過程:
一、安裝MySql
首先上官網下載windows版的MySql.解壓。詳情是參考了幾位同鞋的文章:
https://www.cnblogs.com/LxyXY/p/7708016.html MySql 5.7.20安裝
http://blog.csdn.net/cdsn_ttk/article/details/78259927 Mysql5.7.20壓縮版下載和安裝
二、連接MySql
2.1在NuGet管理器中下載MySql.Data,選的是6.9.10版
2.2 由於之前用的是DbConnection等一系列的類,因此只需改下資料庫連接與調整下SQL語句便可以切換資料庫了
public static DbConnection CreateConnection() { if (string.IsNullOrEmpty(DbHelper.dbProviderName)) dbProviderName = "MySql.Data.MySqlClient"; DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName); DbConnection dbconn = dbfactory.CreateConnection(); dbconn.ConnectionString = DbHelper.dbConnectionString; return dbconn; }
2.3 上面所說到的坑就是假如NeGet中選的版本是6.10.5的話。以下語句中DataTable返回的是NULL.
public DataTable ExecuteDataTable(DbCommand cmd) { DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName); DbDataAdapter dbDataAdapter = dbfactory.CreateDataAdapter(); dbDataAdapter.SelectCommand = cmd; DataTable dataTable = new DataTable(); dbDataAdapter.Fill(dataTable); return dataTable; }
經苦苦查找,發現原來是此版本的MySql.Data.Dll的Buy!
over.