在.net c#下連結mysql

包含 c#, asp.net, vb.net, delphi.net 等 .net framework 的開發討論區
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

在.net c#下連結mysql

文章 tim »

引用自: http://www.runpc.com.tw/content/main_co ... 86&fid=E02

MySQL Server開發應用(1)
前端C#後端MySQL
文/圖 葉建榮.責任編輯/洪羿漣

安裝完成MySQL Server之後,由於C# 2005 Express已支援UTF-8,所以MySQL Server預設編碼請選擇UTF-8,管理者「root」於本範例預設密碼為「runpc」。
在使用MySQL之前,請先留意連練帳號的設定與權限是否允許作業。帳號連線到MySQL Server時需經過兩道手續進行身份驗證,第一道手續為檢查該機器的host與使用者的username、password在「mysql」資料庫內「user」資料表是否相同。

連線時依據host、user與password進行驗證,host可以是主機名稱或IP,若你設定為「localhost」代表本機,通過後再進行第二道手續驗證。第二道手續為確認該帳號是否在欲操作的資料庫或資料表是否有權限。針對資料庫與資料表,MySQL內可設定十四種權限。


範例環境設定
本範例預設連線帳號的host為「localhost」、user為「root」、密碼為「runpc」,之後範例會再跟各位說明如何進行MySQL帳號管理。

如果你的資料不在MySQL內,現在請你將資料匯入MySQL。你可於MySQL官方網站上下載MySQL Connector/ODBC元件,將原本儲存於Access的資料匯入至MySQL內。若你的資料匯出入時需調整編碼,建議你安裝3.51版,就可在「Connect Options」調整編碼。

圖1:MySQL ODBC內調整編碼。
圖檔

C#與MySQL溝通元件
C#如何與MySQL溝通呢?MySQL官方網頁上提供MySQL Connector/Net 6.0元件,它可讓你C#所寫的開發專案與MySQL溝通,所以請先下載並安裝。

安裝好元件後,請開啟新增專案並且在「加入參考」中,於「.Net」標籤內挑選「MySql.Data」後確定即可。

圖2:於C#專案的參考內加入MySql.Data。
圖檔

完成後請你於程式碼最前端加上「using MySql.Data.MySqlClient;」,接著就可以輸入語法。


連線MySQL Server常出現的問題
MySQL在存取資料之前,需先進行Server連線。Server連線時容易出現兩種狀況:Server沒有權限以及帳號密碼錯誤。

如果MySQL連線時發生Server無法連線,將會拋出例外的編號為0;若MySQL連線時發生帳號密碼錯誤,則會拋出例外的編號為1045。因此可利用拋出了例外編號,瞭解目前MySQL Server連線狀況。

以下的語法為連線狀況的偵測:



myConnectionString這個字串儲存的資料為Server連線字串,server代表host,uid代表 user,pwd代表password,而database則是你欲連線的資料庫。如果你還考慮編碼,例如資料編碼為Big5碼,請你再加入「CharSet=big5;」敘述就可以了。


新增控制項範例
Server連線成功之後,如果要執行「將textbox1與textbox2兩個控制項內容,新增至customer資料表內的id與username」,那該怎麼進行呢?參考如下:
圖檔



{0}代表一個參數,在insert into語法之後的textBox1.Text代表將它的內容傳遞給這個參數。

由於MySQL的資料結構與Access不同,所以新增資料時若考慮到欄位屬性,你也可用以下的方式新增:

圖檔

所以當資料庫網頁為PHP與MySQL組合時,視窗程式可用C#開發,後端資料庫仍可使用MySQL,不必變更或轉換。
多多留言, 整理文章, 把經驗累積下來.....
回覆文章