本文作者與大家分享了在.NET平臺(tái)使用MySQL數(shù)據(jù)庫(kù)的經(jīng)驗(yàn),在.NET平臺(tái)中使用MySQL數(shù)據(jù)庫(kù)需要下載一個(gè)MySQL驅(qū)動(dòng)包,并將組件引入的VS中,然后編寫(xiě)一個(gè)控制臺(tái)程序。
在.NET中一直使用Sql Server做數(shù)據(jù)庫(kù)。前幾天學(xué)習(xí)通過(guò)JDBC使用Java連接MySql數(shù)據(jù)庫(kù),我就想.NET是否同樣可以使用MySql數(shù)據(jù)庫(kù)呢?答案是肯定的,方法也很簡(jiǎn)單,在這里我使用C#作為編程語(yǔ)言,將自己整理出來(lái)的方法同大家一起分享。
欲在.NET中使用MySql數(shù)據(jù)庫(kù),其步驟是:
1. 下載MySql驅(qū)動(dòng)包
2. 引用驅(qū)動(dòng)包中已經(jīng)編譯好的MySql類組件
3. 編寫(xiě)代碼
步驟一:下載MySql驅(qū)動(dòng)包
在我寫(xiě)篇文章的時(shí)候,***的驅(qū)動(dòng)包是5.2,支持Visual Studio 2008。官方下載地址是http://dev.mysql.com/downloads/connector/net/5.2.html
步驟二:引入組件
下載的文件是一個(gè)壓縮文件,將其解壓縮到本地磁盤(pán)。找到bin文件夾中的MySql.Data.dll文件,這個(gè)就是我們要引用的組件。通過(guò)Visual Studio將其引用到你的項(xiàng)目中

步驟三:編碼,我編寫(xiě)了一個(gè)控制臺(tái)的示例,并將重要的部分都添加了注釋,代碼如下:
1[[228]][[229]]/**//** 2[[230]] * 程序名稱:使用.NET連接MySql數(shù)據(jù)庫(kù) 3[[230]] * 作者:吳磊 4[[230]] * 日期:2009年01月17日 5[[231]] */ 6[[232]] 7[[232]]// 使用MySql.Data.MySqlClient命名空間 8[[232]]using System; 9[[232]]using MySql.Data.MySqlClient; 10[[232]] 11[[232]]namespace Project_Personnel.db 12[[228]][[229]][[233]]{ 13[[230]] class dbManage 14[[234]][[235]] [[233]]{ 15[[234]][[235]] /**//// 16[[230]] /// 連接到MySql數(shù)據(jù)庫(kù)并返回連接對(duì)象 17[[230]] /// 18[[236]] /// 數(shù)據(jù)庫(kù)連接對(duì)象 19[[230]] private static MySqlConnection getCon() 20[[234]][[235]] [[233]]{ 21[[230]] MySqlConnection myCon = null; 22[[230]] try 23[[234]][[235]] [[233]]{ 24[[234]][[235]] /**//* 25[[230]] * Server:數(shù)據(jù)庫(kù)服務(wù)器。localhost表示本機(jī) 26[[230]] * Database:數(shù)據(jù)庫(kù)名稱。school表示mySql中一個(gè)名為school的數(shù)據(jù)庫(kù) 27[[230]] * Uid:用戶名 28[[230]] * Pwd:密碼 29[[230]] * CharSet:使用的字符編碼。不設(shè)置可能產(chǎn)生亂碼 30[[236]] */ 31[[230]] myCon = new MySqlConnection("Server=localhost;Database=school; Uid=root;Pwd=123;CharSet=utf8;"); 32[[230]] myCon.Open(); 33[[236]] } 34[[230]] catch (MySqlException e) 35[[234]][[235]] [[233]]{ 36[[230]] //拋出連接MySql數(shù)據(jù)庫(kù)的異常 37[[230]] throw new Exception(e.Message); 38[[236]] } 39[[230]] return myCon; 40[[236]] } 41[[230]] 42[[230]] public static void Main() 43[[234]][[235]] [[233]]{ 44[[230]] try 45[[234]][[235]] [[233]]{ 46[[230]] //從shool表中檢索數(shù)據(jù)的sql語(yǔ)句(別誤會(huì),我是在school數(shù)據(jù)庫(kù)中建立了一個(gè)school表) 47[[230]] MySqlCommand myCmd = new MySqlCommand("select * from school", getCon()); 48[[230]] 49[[230]] //執(zhí)行檢索語(yǔ)句并將執(zhí)行結(jié)果賦值給MySqlDataReader對(duì)象 50[[230]] MySqlDataReader myReader = myCmd.ExecuteReader(); 51[[230]] 52[[230]] //進(jìn)行讀取 53[[230]] while (myReader.Read()) 54[[234]][[235]] [[233]]{ 55[[230]] //myReader的FieldCount屬性表示列數(shù) 56[[230]] for (int i = 0; i < myReader.FieldCount; i++) 57[[234]][[235]] [[233]]{ 58[[234]][[235]] /**//* 59[[230]] * 提示:如果使用此if語(yǔ)句,會(huì)產(chǎn)生異常:數(shù)據(jù)為空,不能對(duì)空值調(diào)用此方法或?qū)傩浴?BR>60[[230]] * 判斷索引為i的列中的值是否為空,如果為空輸出NULL 61[[236]] */ 62[[230]] if (!myReader[i].Equals(DBNull.Value)) 63[[234]][[235]] [[233]]{ 64[[230]] Console.Write("{0,10}", myReader[i]); 65[[236]] } 66[[230]] else 67[[234]][[235]] [[233]]{ 68[[230]] Console.Write("{0,10}", "Null"); 69[[236]] } 70[[236]] } 71[[230]] //換行 72[[230]] Console.WriteLine(); 73[[236]] } 74[[236]] } 75[[230]] //捕獲MySql異常 76[[230]] catch (MySqlException e) 77[[234]][[235]] [[233]]{ 78[[230]] Console.WriteLine(e.Message); 79[[236]] } 80[[230]] //捕獲其他異常 81[[230]] catch (Exception e) 82[[234]][[235]] [[233]]{ 83[[230]] Console.WriteLine(e.Message); 84[[236]] } 85[[230]] finally 86[[234]][[235]] [[233]]{ 87[[230]] Console.ReadKey(); 88[[236]] } 89[[236]] } 90[[236]] } 91[[231]]}
|
【編輯推薦】
- 專題:MySQL數(shù)據(jù)庫(kù)入門與精通教程
- 使用Ja.Net實(shí)現(xiàn)Java和.NET的完美互用
- 平臺(tái)之爭(zhēng) Java與.NET誰(shuí)更有前途