程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 在.NET中使用MySql數據庫

在.NET中使用MySql數據庫

編輯:關於.NET

在.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}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved