日前要測一個東西,但是找不到免費的MSSQL可以用,所以就去db4free申請了個免費的mysql來用,相當方便又可以從外部連結,於是有了下面的C#連結MySQL的範例出現。
記得在.Net上要連結MySQL需要去抓這個MySQL Connector,如果不需要自己編DLL的話,不用抓 src 的版本,只要抓 mysql-connector-net-VER.zip 這個來安裝就好,另外,如果發布時需要找DLL檔的話,在 \MySQL Connector Net VER\Assemblies\下面有兩個資料夾,使用.NET Framework 2.0~3.5的找\v2.0\這個裡的DLL,用.NET Framework 4.0的找\v4.0\下面的。
下面就是簡單的Insert範例啦。
__2011/12/20 update__
因為有網友問到,所以來更新一下,這個MySQL Connector後來有更新了,下載時請選".NET & Mono",依你的.NET版本去看要引用哪個資料夾內的檔案,若需要呼叫MySqlCommand請引用mysql.data.dll這檔案,然後using MySql.Data.MySqlClient;,這樣應該就可以了。
我沒實際寫到會動,不過看起來呼叫是沒問題的。
記得在.Net上要連結MySQL需要去抓這個MySQL Connector,如果不需要自己編DLL的話,不用抓 src 的版本,只要抓 mysql-connector-net-VER.zip 這個來安裝就好,另外,如果發布時需要找DLL檔的話,在 \MySQL Connector Net VER\Assemblies\下面有兩個資料夾,使用.NET Framework 2.0~3.5的找\v2.0\這個裡的DLL,用.NET Framework 4.0的找\v4.0\下面的。
下面就是簡單的Insert範例啦。
//記得要載入MySQL using MySql.Data; using MySql.Data.MySqlClient; //程式片段大概是這樣 public int Insert (string id,string total,string sig) { //設定連線資訊 string connStr = String.Format("server=DBHOST;user id=USER; password=PWD; database=DBNAME"); MySqlConnection conn = new MySqlConnection(connStr); //sql字串 string sqlStr = "INSERT INTO tbl_SRBack (id,total,sig) VALUES (?id,?total,?sig)"; try { conn.Open(); } catch (MySql.Data.MySqlClient.MySqlException ex) { switch (ex.Number) { case 0: Console.WriteLine("Can't Connect to DBHOST."); break; case 1045: Console.WriteLine("Account or Password wrong."); break; } return ex.Number; } MySqlCommand mySqlCmd = new MySqlCommand(sqlStr, conn); //加入參數 MySqlParameter[] parameters = new MySqlParameter[3]; parameters[0] = new MySqlParameter("?id", MySqlDbType.VarChar, 99); parameters[0].Value = id; parameters[1] = new MySqlParameter("?total", MySqlDbType.Int32); parameters[1].Value = Convert.ToInt32(total); parameters[2] = new MySqlParameter("?sig", MySqlDbType.VarChar, 99); parameters[2].Value = sig; mySqlCmd.Parameters.AddRange(parameters); try { mySqlCmd.ExecuteNonQuery(); return 0; } catch (MySql.Data.MySqlClient.MySqlException ex) { return ex.Number; } }
__2011/12/20 update__
因為有網友問到,所以來更新一下,這個MySQL Connector後來有更新了,下載時請選".NET & Mono",依你的.NET版本去看要引用哪個資料夾內的檔案,若需要呼叫MySqlCommand請引用mysql.data.dll這檔案,然後using MySql.Data.MySqlClient;,這樣應該就可以了。
我沒實際寫到會動,不過看起來呼叫是沒問題的。
忘記說,最後因為我放aspx的站brinkster不能吃dll,試了老半天後做了白工,所以只好把這個範例貼出來免得花了一堆時間啥結果都沒有...
ReplyDelete請問一下 我跑上面的程式
ReplyDelete為什麼編譯時跟我說mySqlCmd不存在
可是已經有引入MySql.Data和MySql.Data.MySqlClient
卡在insert功能好久了...
你在vs中MySqlCommand有變色嗎 ?
ReplyDelete沒有變色
ReplyDelete不知道該怎麼辦
也許他有改了版本或是怎樣,我再找時間試一下。
ReplyDelete恩 那你自己跑這支程式還可以動嗎?
ReplyDelete我目前在看msdn的網站(好多...不太清楚重點在哪 只能慢慢看 短時間內似乎沒法搞定...)
謝謝你喔
to jessie123:
ReplyDelete我剛剛試了一下,有更新在文章最後,你可以參考看看。
謝謝你
ReplyDelete我可以insert資料了
我引入mysql.data.dll
把參數改一改,還有把第51和55行註解掉就可以跑了