在.NET中一直使用Sql Server做数据库。前几天学习通过JDBC使用Java连接MySql数据库,我就想.NET是否同样可以使用MySql数据库呢?答案是肯定的,方法也很简单,在这里我使用C#作为编程语言,将自己整理出来的方法同大家一起分享。

欲在.NET中使用MySql数据库,其步骤是:

1. 下载MySql驱动包2. 引用驱动包中已经编译好的MySql类组件3. 编写代码

步骤一:下载MySql驱动包

在我写篇文章的时候,***的驱动包是5.2,支持Visual Studio 2008。官方下载地址是http://dev.mysql.com/downloads/connector/net/5.2.html

步骤二:引入组件

下载的文件是一个压缩文件,将其解压缩到本地磁盘。找到bin文件夹中的MySql.Data.dll文件,这个就是我们要引用的组件。通过Visual Studio将其引用到你的项目中

步骤三:编码,我编写了一个控制台的示例,并将重要的部分都添加了注释,代码如下:

1[[228]][[229]]/**//**2[[230]]*程序名称:使用.NET连接MySql数据库3[[230]]*作者:吴磊4[[230]]*日期:2009年01月17日5[[231]]*/6[[232]]7[[232]]//使用MySql.Data.MySqlClient命名空间8[[232]]usingSystem;9[[232]]usingMySql.Data.MySqlClient;10[[232]]11[[232]]namespaceProject_Personnel.db12[[228]][[229]][[233]]{13[[230]]classdbManage14[[234]][[235]][[233]]{15[[234]][[235]]/**////16[[230]]///连接到MySql数据库并返回连接对象17[[230]]///18[[236]]///数据库连接对象19[[230]]privatestaticMySqlConnectiongetCon()20[[234]][[235]][[233]]{21[[230]]MySqlConnectionmyCon=null;22[[230]]try23[[234]][[235]][[233]]{24[[234]][[235]]/**//*25[[230]]*Server:数据库服务器。localhost表示本机26[[230]]*Database:数据库名称。school表示mySql中一个名为school的数据库27[[230]]*Uid:用户名28[[230]]*Pwd:密码29[[230]]*CharSet:使用的字符编码。不设置可能产生乱码30[[236]]*/31[[230]]myCon=newMySqlConnection("Server=localhost;Database=school; Uid=root;Pwd=123;CharSet=utf8;");32[[230]]myCon.Open();33[[236]]}34[[230]]catch(MySqlExceptione)35[[234]][[235]][[233]]{36[[230]]//抛出连接MySql数据库的异常37[[230]]thrownewException(e.Message);38[[236]]}39[[230]]returnmyCon;40[[236]]}41[[230]]42[[230]]publicstaticvoidMain()43[[234]][[235]][[233]]{44[[230]]try45[[234]][[235]][[233]]{46[[230]]//从shool表中检索数据的sql语句(别误会,我是在school数据库中建立了一个school表)47[[230]]MySqlCommandmyCmd=newMySqlCommand("select*fromschool",getCon());48[[230]]49[[230]]//执行检索语句并将执行结果赋值给MySqlDataReader对象50[[230]]MySqlDataReadermyReader=myCmd.ExecuteReader();51[[230]]52[[230]]//进行读取53[[230]]while(myReader.Read())54[[234]][[235]][[233]]{55[[230]]//myReader的FieldCount属性表示列数56[[230]]for(inti=0;i<myReader.FieldCount;i++)57[[234]][[235]][[233]]{58[[234]][[235]]/**//*59[[230]]*提示:如果使用此if语句,会产生异常:数据为空,不能对空值调用此方法或属性。60[[230]]*判断索引为i的列中的值是否为空,如果为空输出NULL61[[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]]else67[[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(MySqlExceptione)77[[234]][[235]][[233]]{78[[230]]Console.WriteLine(e.Message);79[[236]]}80[[230]]//捕获其他异常81[[230]]catch(Exceptione)82[[234]][[235]][[233]]{83[[230]]Console.WriteLine(e.Message);84[[236]]}85[[230]]finally86[[234]][[235]][[233]]{87[[230]]Console.ReadKey();88[[236]]}89[[236]]}90[[236]]}91[[231]]}

【编辑推荐】

    专题:MySQL数据库入门与精通教程使用Ja.Net实现Java和.NET的完美互用平台之争 Java与.NET谁更有前途