亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#連接操作 MySQL 數據庫實例(使用官方驅動)

2020-01-24 02:08:55
字體:
來源:轉載
供稿:網友

MySQL 以其免費和足夠的性能受到很大的青睞,當然對于國內小公司,甚至是大公司如果對版權看得薄,敢冒險的話,隨便裝個 SqlServer、DB2、Oracle 都行。對于 SqlServer 數據庫,因其與 MS 是一家,自然在 .net 類庫中有內建支持,假如 MySQL 就得找第三方的驅動了 -- .net 中多講 Provider。在這里我也是作為一個預研專題,記錄下 C# 連接 MySQL 的兩種方法,分別使用 MySQL 官方的和 SourceForge 上一個開源的 MySQL 驅動。至于 ODBC 的辦法,就不提了,覺得意義不大,同樣要安裝個 MySQL ODBC 驅動,而且 ODBC 又如此之笨拙。

使用 MySQL 官方區動連接操作 MySQL 數據庫

下載驅動,可在 http://www.mysql.com/downloads/connector/net/6.3.html#downloads 下載,當前版本是 6.3。你可以選擇的平臺既可以是 Microsoft Windows,也可以用 .Net & Mono 的,區別是 Microsoft Windows 的是一個MSI 文件,后者是非安裝的壓縮包。但是那個 MSI 文件在我的 64 位 XP 下安裝不成功,所以用了后者。

這個 connector net 不光是個 MySQL 驅動,還提供了像 Entity Frameword、Asp.Net Web Providers、Compact Framework、VS 2008 集成的支持,還配置 CSharp 和 VB 的例子。詳細的配置、使用文檔請參考安裝目錄中的 MySql.Data.chm 文件。

現在從最簡單的例子開始,驅動安裝完,或壓縮包解開后,甭里安裝目錄里的 mysql.data.cf.dll、mysql.data.entiry.dll、mysql.visualstudio.dll 和 mysql.web.dll,我們暫時在項目中引入 mysql.data.dll,用 using MySql.Data.MySqlClient; 引入命名空間。然后簡單的代碼如下:

復制代碼 代碼如下:

//連接字符串
 string connStr = "Server=localhost;Database=unmicc;Uid=unmicc;Pwd=xxxxxx;CharSet=utf8;";
 MySqlConnection con = new MySqlConnection(connStr);
 
 con.Open();//打開連接
 
 MySqlCommand cmd = new MySqlCommand("select now()",con);
 
 object time = cmd.ExecuteScalar(); //或是 cmd.ExecuteReader();cmd.ExecuteNonQuery();
 
 MessageBox.Show(time.ToString());
 //或 Console.WriteLine(time.ToString());
 
 con.Close();
 

上面的連接字符串應該好理解,另外還有更多的配置參數,例如端口號、連接池相關的配置等,具體請參考手冊中的 Connection Options。其他的操作就是標準的 ADO.NET 的了,再就是可以處理各步驟的異常,catch MySql.Data.MySqlClient.MySqlException 這個類型的異常。其他的用于填充數據的 MySqlDataAdapter 和  MySqlDataReader 也是備好了的。

我想,在做正式的應用時,為防止 SQL 注入時關于參數化查詢肯定會被提出來的,那就來看看這個 MySQL 官方驅動如何處理參數化查詢的。它所用的方式和 SqlServer Provider 是一樣的,用 @author 這樣的形式來標識參數,并且同樣支持 AddWithValue(string name, object value) 的方式。請看代碼:

復制代碼 代碼如下:

string sql = "update wp_posts set post_author=@author and post_status=@status where id=@id";
 
 //可以用 ? 號的形式,如,但 ? 號的形式不推薦使用
 //string sql = "update wp_posts set post_author=?author and post_status=?status where id=?id";
 
 MySqlCommand cmd = con.CreateCommand();
 cmd.CommandText = sql;
 
 cmd.Parameters.AddWithValue("@author", 1);
 //cmd.Parameters.AddWithValue("?author", 1);
 cmd.Parameters.AddWithValue("@status", "publish");
 //cmd.Parameters.AddWithValue("?status", "publish");
 cmd.Parameters.AddWithValue("@id", 23);
 //cmd.Parameters.AddWithValue("?id",23);
 
 cmd.ExecuteNonQuery();

注意到,同時還能用 ?author 的形式來標識參數,不過現在不推薦這么用了,也許是為了統一成 @author 的格式吧。不知道什么時候能像 JDBC 一樣,直接用 ? 來作為占位符。

對于 InnoDB 存儲引擎的 MySQL 是支持事物的,這個官方的的驅動支持事物的代碼如下:
[code]
MySqlTransaction trans = con.BeginTransaction(); //啟用事物
 trans.Commit(); //正常時提交
 trans.Rollback(); //異常時回滾
[code]
下一篇將介紹如何使用 SourceForge 上的開源 MySQL .Net 驅動怎么去操作 MySQL 數據庫的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品欧美一区二区三区| 国产精品国产三级国产专播精品人| 亚洲精品自拍偷拍| 久久亚洲春色中文字幕| 精品国产乱码久久久久久天美| 久久人人爽人人爽人人片av高清| 国产精品久久一区主播| 久久91精品国产91久久跳| 中文字幕亚洲二区| 国产精品日韩在线播放| 欧美一乱一性一交一视频| 精品久久久在线观看| 欧美自拍大量在线观看| 欧美噜噜久久久xxx| 欧美片一区二区三区| 亚洲成人国产精品| 国产视频久久久| 国模精品视频一区二区| 欧美性精品220| 国产成人av在线播放| 欧美日韩高清区| 国产福利精品在线| 国产美女91呻吟求| 91免费在线视频网站| 激情懂色av一区av二区av| 中文字幕国产精品| xvideos亚洲| 久久成人精品一区二区三区| 国内精品一区二区三区| 91久久精品美女高潮| 国产在线观看精品一区二区三区| 亚洲精品第一页| 久久久免费观看视频| 成人福利视频网| 欧美激情精品久久久久久大尺度| 5566成人精品视频免费| 日本精品久久久久久久| 51久久精品夜色国产麻豆| 国产精品一区=区| www欧美日韩| 1769国产精品| 亚洲欧美国产一区二区三区| 国产成人福利网站| 精品久久久久久久大神国产| 深夜福利亚洲导航| 欧美大片在线影院| 日韩精品日韩在线观看| 久久久久久国产精品三级玉女聊斋| 日本久久91av| 夜夜嗨av一区二区三区免费区| 日韩国产在线看| 久久色在线播放| 日韩电影免费在线观看中文字幕| 4438全国成人免费| 久久久国产视频| 国产午夜精品理论片a级探花| 国产视频亚洲视频| 国产精品久久久av久久久| 超薄丝袜一区二区| 7777精品久久久久久| 国产自产女人91一区在线观看| 成人美女av在线直播| 国产91色在线|免| 精品国产乱码久久久久久虫虫漫画| 欧美国产日韩xxxxx| 97av在线影院| 国产精品入口夜色视频大尺度| 亚洲性无码av在线| 日韩免费高清在线观看| 久久久久久av| 日韩精品视频在线观看网址| 91精品久久久久久久久青青| 欧美精品国产精品日韩精品| 91精品久久久久久| 亚洲福利视频二区| 久久精品久久久久久国产 免费| 夜夜嗨av一区二区三区四区| yw.139尤物在线精品视频| 欧美日韩综合视频| 国产精品久久久久久久久久久不卡| 欧美自拍大量在线观看| 日韩av在线免播放器| 97视频免费观看| 精品日本美女福利在线观看| 欧美日韩国产色视频| 免费av一区二区| 精品呦交小u女在线| 国产成人在线一区| 国产不卡在线观看| 欧美日韩免费在线观看| 久久黄色av网站| 日韩av在线网站| 成人国产精品色哟哟| 欧美寡妇偷汉性猛交| 精品香蕉一区二区三区| 57pao成人国产永久免费| 日韩亚洲国产中文字幕| 亚洲a级在线观看| 91精品视频大全| 日本精品久久久久影院| 国产精品羞羞答答| 成人福利网站在线观看| 欧美中文字幕在线视频| 国模精品一区二区三区色天香| 久久久久北条麻妃免费看| 欧美性jizz18性欧美| 久久久精品视频在线观看| 日韩av手机在线| 久久影视三级福利片| 亚洲毛片在线免费观看| 亲子乱一区二区三区电影| 国内揄拍国内精品少妇国语| 欧美激情免费看| 国产成人小视频在线观看| 亚洲第一页在线| 98精品国产自产在线观看| 亚洲a级在线观看| 国产精品成人一区二区三区吃奶| 欧美日韩另类字幕中文| 91精品国产综合久久男男| 国产美女精品免费电影| 一本色道久久综合亚洲精品小说| 欧美激情视频一区二区| 青草青草久热精品视频在线观看| 亚洲男人的天堂网站| 在线播放国产一区中文字幕剧情欧美| 久久中文字幕在线视频| 国产精品 欧美在线| 日韩精品在线免费| 日韩一中文字幕| 久久精品电影一区二区| 91亚洲精品久久久久久久久久久久| 日韩av电影在线播放| 日韩一二三在线视频播| 久久精品色欧美aⅴ一区二区| 久久久欧美精品| 国产精品九九久久久久久久| 国产精品免费小视频| 夜夜嗨av一区二区三区四区| 中文字幕日韩免费视频| 欧美日韩国产综合视频在线观看中文| 在线播放日韩专区| 欧美电影免费看| 97精品在线视频| 国产在线精品成人一区二区三区| 欧美尺度大的性做爰视频| 91精品国产综合久久香蕉922| 日韩美女av在线免费观看| 国产欧美韩国高清| 国产精品久久久久久久久久小说| 国产一区二区三区直播精品电影| 98精品国产高清在线xxxx天堂| 欧美电影电视剧在线观看| 久久久久久久久91| 欧美日韩亚洲精品一区二区三区| 91亚洲va在线va天堂va国| 日韩精品一区二区三区第95| 91av视频在线免费观看| 亚洲国产精品va在线看黑人| 欧美日韩国产精品一区二区不卡中文| 69**夜色精品国产69乱| 中文国产成人精品| 国产精品福利小视频| 成人性生交大片免费看视频直播|