本文簡單介紹連接過程,代碼只列出核心部分
1、安裝MySQL
首先確保安裝了MySQL,並可以正常使用
如果沒有,請參考:MySQL的安裝
2、引入數據庫連接驅動
在項目中引入 MySql.Data.dll
如果沒有該文件,下載Connector/NET包,地址:https://dev.mysql.com/downloads/connector/net/,注意對應MySQL版本
安裝后,在安裝目錄找到 MySql.Data.dll 引入
3、dbhelper
public string getDBdata(string sql) { System.Data.DataSet ds = new System.Data.DataSet(); string connStr = @"Database=ent;Data Source=localhost;User Id=root;Password=123456"; try { using (MySql.Data.MySqlClient.MySqlDataAdapter dataAapter = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, connStr)) { dataAapter.Fill(ds); return DatasetToJson(ds); } } catch (Exception e) { return e.Message.ToString(); } }
用到的 dataset 轉json代碼參考:
/// <summary> /// DataSet轉換成Json格式 /// </summary> /// <paramname="ds">DataSet</param> ///<returns></returns> public static string DatasetToJson(DataSet ds, int total = -1) { StringBuilder json = new StringBuilder(); foreach (DataTable dt in ds.Tables) { json.Append("{\"total\":"); if (total == -1) { json.Append(dt.Rows.Count); } else { json.Append(total); } json.Append(",\"rows\":["); json.Append(DataTableToJson(dt)); json.Append("]}"); } return json.ToString(); } /// <summary> /// dataTable轉換成Json格式 /// </summary> /// <paramname="dt"></param> ///<returns></returns> public static string DataTableToJson(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; i++) { jsonBuilder.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { jsonBuilder.Append("\""); jsonBuilder.Append(dt.Columns[j].ColumnName); jsonBuilder.Append("\":\""); jsonBuilder.Append(dt.Rows[i][j].ToString()); jsonBuilder.Append("\","); } if (dt.Columns.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } jsonBuilder.Append("},"); } if (dt.Rows.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } return jsonBuilder.ToString(); }
4、常見錯誤
Client does not support authentication protocol requested by server; consider upgrading MySQL client
登陸mysql
mysql -u root -p
#接着輸入你的密碼
執行解決:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼'; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼'; SELECT plugin FROM mysql.user WHERE User = 'root';
給定關鍵字不在字典中。
這個錯誤一般是由於 MySql.Data.dll 版本不對應導致,重新下載引入即可