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

在.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        /// 
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 < 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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值