C#操作MySQL資料庫的簡單例子

來源:互聯網
上載者:User

 

其實很簡單,但是我在網上找的時候卻找不到有用的資訊,奇怪。
到這裡下載驅動
http://www.mysql.com/products/connector/

 

下載的包裡面有使用的例子。
需要具備的知識:知道怎樣添加一個dll的reference到現有的項目中。
剛開始是想找通過OleDb串連mysql的,後來沒有找到合適的。
微軟的介面規劃得很好,只要把OleDb換成MySql,以前的程式基本不用改變。
建議放棄使用OleDb來訪問MySql的做法,因為據說效率不高,直接使用上面的mysql-connector-net。

 

 

 

 ++++++++++++++++++++++++++++++++++++++++++++++

 ++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++

 

 

 

本樣本示範了用C#操作MySQL的方法,提供了三個可重用的類MySqlDBUtil,MySqlPageUtil,Page。

本樣本由 C#操作Access資料庫的簡單例子(http://www.albertsong.com/read-56.html)修改而來。
1.首先下載MySQL資料庫的.NET驅動
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
將bin目錄裡的MySql.Data.dll檔案複製到工程目錄,並且將dll的引用加入到項目中,這樣就可以通過相關的類來操作MySQL資料庫了。

using MySql.Data.MySqlClient;
using System.Data;

連接字串:

String connectionString = "server=127.0.0.1;user id=root; password=as; database=albertsong; pooling=false;charset=utf8";

連接字串中各個項目的意思是很明確的,需要注意的是charset應該設定成和資料庫表的charset一致,否則可能出現中文亂碼。
然後將整個項目中的OleDb用MySql替換,這樣基本上就可以了。不同的是帶參數的sql語句,
Access中是

string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?,?,?,?,?)";
parameters[0]=new MySqlParameter("@name",MySqlDbType.VarChar,100);

MySql中應改為

string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?name,?quantity,?price,?sale_date,?checked_flag)";
parameters[0]=new MySqlParameter("?name",MySqlDbType.VarChar,100);

2.取得MySQL自增識別欄位在插入資料後的id值

cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;

cmd.CommandText = @"select LAST_INSERT_ID()";

結果一樣,兩者的區別沒有研究。
3.分頁查詢
使用Limit子句來處理分頁查詢,這樣相對於Access的分頁查詢,代碼大量簡化,效率也會提高。
代碼這裡下載MySqlDBUtilDemo.rar (198.41 KB , 下載:4193次)
本常式是一個c#的winform程式,但是資料訪問類可以在Web環境下使用。
運行前先利用bin\Release下的sql語句檔案建表並修改MySqlDBUtil中的連接字串。
本常式示範了:
1.MySQL資料庫的插入,更新,修改,查詢;
2.帶參數的sql語句的使用,而不是拼SQL;
3.使用Limit子句的分頁查詢;
4.用事務同時執行多個SQL語句;
5.在插入資料的同時返回最新的ID值;
6.整型,實型,字串,日期型,布爾型五種資料類型的操作;
7.使用Regex來驗證整數和實數;
8.listview用來顯示資料的一些基本用法。
本樣本不包括:
1.完善的分頁封裝,只提供了分頁的簡單封裝。
2.嵌套的交易處理,提供了同時執行多個sql語句的交易處理,但不支援嵌套事務。
3.listview的使用,只是利用winform控制項來示範資料訪問,因此不能作為winform編程的良好樣本,例如添加資料時介面並沒有很好地更新。
後記:
由於API介面一致,將操作Access資料庫的類改為操作MySQL資料庫的類很容易,利用這兩個樣本,可以學習基本的資料庫操作,也可以用來做一些簡單的應用程式了。實際的項目中有成熟的開源項目可用,如iBATIS.NET和NHibernate,這些項目都建築在這些基本的API之上,先學習我寫的這兩個小例子也有助於學習理解這些項目。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.