如何在.NET中使用MySQL数据库

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

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

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

1. 下载MySql驱动包

2. 引用驱动包中已经编译好的MySql类组件

3. 编写代码

步骤一:下载MySql驱动包

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

步骤二:引入组件

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

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

1/**//**

2 * 程序名称:使用.NET连接MySql数据库

3 * 作者:吴磊

4 * 日期:2009年01月17日

5 */

6

7// 使用MySql.Data.MySqlClient命名空间

8using System;

9using MySql.Data.MySqlClient;

10

11namespace Project_Personnel.db

12{

13 class dbManage

14 {

15 /**////

16 /// 连接到MySql数据库并返回连接对象

17 ///

18 /// 数据库连接对象

19 private static MySqlConnection getCon()

20 {

21 MySqlConnection myCon = null;

22 try

23 {

24 /**//*

25 * Server:数据库服务器。localhost表示本机

26 * Database:数据库名称。school表示mySql中一个名为school的数据库

27 * Uid:用户名

28 * Pwd:密码

29 * CharSet:使用的字符编码。不设置可能产生乱码

30 */

31 myCon = new MySqlConnection("Server=localhost;Database=school;

Uid=root;Pwd=123;CharSet=utf8;");

32 myCon.Open();

33 }

34 catch (MySqlException e)

35 {

36 //抛出连接MySql数据库的异常

37 throw new Exception(e.Message);

38 }

39 return myCon;

40 }

41

42 public static void Main()

43 {

44 try

45 {

46 //从shool表中检索数据的sql语句(别误会,我是在school数据库中建立了一个school表)

47 MySqlCommand myCmd = new MySqlCommand("select * from school", getCon());

48

49 //执行检索语句并将执行结果赋值给MySqlDataReader对象

50 MySqlDataReader myReader = myCmd.ExecuteReader();

51

52 //进行读取

53 while (myReader.Read())

54 {

55 //myReader的FieldCount属性表示列数

56 for (int i = 0; i 57 {

58 /**//*

59 * 提示:如果使用此if语句,会产生异常:数据为空,不能对空值调用此方法或属性。

60 * 判断索引为i的列中的值是否为空,如果为空输出NULL

61 */

62 if (!myReader[i].Equals(DBNull.Value))

63 {

64 Console.Write("{0,10}", myReader[i]);

65 }

66 else

67 {

68 Console.Write("{0,10}", "Null");

69 }

70 }

71 //换行

72 Console.WriteLine();

73 }

74 }

75 //捕获MySql异常

76 catch (MySqlException e)

77 {

78 Console.WriteLine(e.Message);

79 }

80 //捕获其他异常

81 catch (Exception e)

82 {

83 Console.WriteLine(e.Message);

84 }

85 finally

86 {

87 Console.ReadKey();

88 }

89 }

90 }

91}