在.NET中使用MySql数据库

来源:互联网 发布:网络神偷官网 编辑:程序博客网 时间:2024/05/21 08:02

 

在.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/**//**
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 /**//// <summary>
16 /// 连接到MySql数据库并返回连接对象
17 /// </summary>
18 /// <returns>数据库连接对象</returns>
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 <  myReader.FieldCount; 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}