在.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]]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数据库并返回连接对象 17[[230]] /// 18[[236]] /// 数据库连接对象 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:数据库服务器。localhost表示本机 26[[230]] * Database:数据库名称。school表示mySql中一个名为school的数据库 27[[230]] * Uid:用户名 28[[230]] * Pwd:密码 29[[230]] * CharSet:使用的字符编码。不设置可能产生乱码 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数据库的异常 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表中检索数据的sql语句(别误会,我是在school数据库中建立了一个school表) 47[[230]] MySqlCommand myCmd = new MySqlCommand("select * from school", getCon()); 48[[230]] 49[[230]] //执行检索语句并将执行结果赋值给MySqlDataReader对象 50[[230]] MySqlDataReader myReader = myCmd.ExecuteReader(); 51[[230]] 52[[230]] //进行读取 53[[230]] while (myReader.Read()) 54[[234]][[235]] [[233]]{ 55[[230]] //myReader的FieldCount属性表示列数 56[[230]] for (int i = 0; i < myReader.FieldCount; i++) 57 |