.NET 連接MySQL數據庫

先下載和安裝MySQLDriverCS,地址:

    http://sourceforge.net/projects/mysqldrivercs/

    在安裝文件夾下面找到MySQLDriver.dll,然後將MySQLDriver.dll添加引用到項目中

    注:我下載的是版本是 MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exe

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Data.Odbc;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using MySQLDriverCS;


    namespace mysql

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

 

            private void Form1_Load(object sender, EventArgs e)

            {

 

            MySQLConnection conn = null;

            conn = new MySQLConnection(new MySQLConnectionString("localhost", "inv", "root", "831025").AsString);

            conn.Open();

 

            MySQLCommand commn = new MySQLCommand("set names gb2312", conn);

            commn.ExecuteNonQuery();

 

            string sql = "select * from exchange ";

            MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn);

 

            DataSet ds = new DataSet();

            mda.Fill(ds, "table1");

 

            this.dataGrid1.DataSource = ds.Tables["table1"];

            conn.Close();


            }

        }

    }

 

演示了用C#操作MySQL的方法,提供了三個可重用的類MySqlDBUtil,MySqlPageUtil,Page。
本示例由 C#操作Access數據庫的簡單例子(http://www.albertsong.com/read-56.html)修改而來。
1.首先下載MySQL數據庫的.NET驅動
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
將bin目錄裏的MySql.Data.dll文件複製到工程目錄,並且將dll的引用加入到項目中,這樣就可以通過相關的類來操作MySQL數據庫了。
using MySql.Data.MySqlClient;
using System.Data;
連接字符串:String connectionString = "server=127.0.0.1;user id=root; password=as; database=albertsong; pooling=false;charset=utf8";
連接字符串中各個項目的意思是很明確的,需要注意的是charset應該設置成和數據庫表的charset一致,否則可能出現中文亂碼。
然後將整個項目中的OleDb用MySql替換,這樣基本上就可以了。不同的是帶參數的sql語句,
Access中是
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?,?,?,?,?)";
parameters[0]=new MySqlParameter("@name",MySqlDbType.VarChar,100);
MySql中應改爲
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?name,?quantity,?price,?sale_date,?checked_flag)";
parameters[0]=new MySqlParameter("?name",MySqlDbType.VarChar,100);
2.取得MySQL自增標識字段在插入數據後的id值
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
用cmd.CommandText = @"select LAST_INSERT_ID()";結果一樣,兩者的區別沒有研究。
3.分頁查詢
使用Limit子句來處理分頁查詢,這樣相對於Access的分頁查詢,代碼大量簡化,效率也會提高。
代碼這裏下載下載文件
MySqlDBUtilDemo.rar (198.41 KB , 下載:1295次)
本例程是一個c#的winform程序,但是數據訪問類可以在Web環境下使用。
運行前先利用bin/Release下的sql語句文件建表並修改MySqlDBUtil中的連接字符串。
本例程演示了:
1.MySQL數據庫的插入,更新,修改,查詢;
2.帶參數的sql語句的使用,而不是拼SQL;
3.使用Limit子句的分頁查詢;
4.用事務同時執行多個SQL語句;
5.在插入數據的同時返回最新的ID值;
6.整型,實型,字符串,日期型,布爾型五種數據類型的操作;
7.使用正則表達式來驗證整數和實數;
8.listview用來顯示數據的一些基本用法。
本示例不包括:
1.完善的分頁封裝,只提供了分頁的簡單包裝。
2.嵌套的事務處理,提供了同時執行多個sql語句的事務處理,但不支持嵌套事務。
3.listview的使用,只是利用winform控件來演示數據訪問,因此不能作爲winform編程的良好示例,例如添加數據時界面並沒有很好地更新。
後記:
由 於API接口一致,將操作Access數據庫的類改爲操作MySQL數據庫的類很容易,利用這兩個示例,可以學習基本的數據庫操作,也可以用來做一些簡單 的應用程序了。實際的項目中有成熟的開源項目可用,如iBATIS.NET和NHibernate,這些項目都建築在這些基本的API之上,先學習我寫的 這兩個小例子也有助於學習理解這些項目。

 

-----按照如下已經操作成功--------------

 

 

1.安裝MySql for .net插件mysql-connector-net-5.0.8.1.exe,可從這裏下載: 
http://mysql.isu.edu.tw/Downloads/Connector-Net/?dir=/Unix/Database/MySQL/Downloads/Connector-Net&page=3 
2.工程中引用MySql.Data命名空間. 
3.代碼如下: 
using MySql.Data.MySqlClient; 
private void button1_Click(object sender, EventArgs e)
{ 
string myConnectionString = "Database=DBtest;
Data Source=localhost;
User Id=root;
Password=sa;
charset=gb2312"; 
MySqlConnection myConnection = new MySqlConnection(myConnectionString); 
myConnection.Open(); 
string SqlStr = "select * from Table1";
MySqlDataAdapter Mda = new MySqlDataAdapter(SqlStr, myConnection); 
DataSet Ds = new DataSet(); 
Mda.Fill(Ds); 
dataGridView1.DataSource = Ds.Tables[0];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章