第三方组件:Mysql.Data.dll

说明:去官方网站下载Mysql.Data.dll,然后在项目中添加该组件的引用,在代码页里输入using Mysql.Data.MysqlClient,我们就可以顺利的使用该类库的函数建立连接了。


以下是几个常用函数:


#region  建立MySql数据库连接

    /// <summary>

    /// 建立数据库连接.

    /// </summary>

    /// <returns>返回MySqlConnection对象</returns>

    public MySqlConnection getmysqlcon()

    {

        string M_str_sqlcon = "server=localhost;user id=root;password=root;database=abc"; //根据自己的设置

        MySqlConnection myCon = new MySqlConnection(M_str_sqlcon);

        return myCon;

    }

    #endregion


    #region  执行MySqlCommand命令

    /// <summary>

    /// 执行MySqlCommand

    /// </summary>

    /// <param name="M_str_sqlstr">SQL语句</param>

    public void getmysqlcom(string M_str_sqlstr)

    {

        MySqlConnection mysqlcon = this.getmysqlcon();

        mysqlcon.Open();

        MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);

        mysqlcom.ExecuteNonQuery();

        mysqlcom.Dispose();

        mysqlcon.Close();

        mysqlcon.Dispose();

    }

    #endregion


#region  创建MySqlDataReader对象

    /// <summary>

    /// 创建一个MySqlDataReader对象

    /// </summary>

    /// <param name="M_str_sqlstr">SQL语句</param>

    /// <returns>返回MySqlDataReader对象</returns>

    public MySqlDataReader getmysqlread(string M_str_sqlstr)

    {

        MySqlConnection mysqlcon = this.getmysqlcon();

        MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);

        mysqlcon.Open();

        MySqlDataReader mysqlread = mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);

        return mysqlread;

    }

    #endregion

 

 

 

另一篇:

 

测试环境:Windows XP + MySql 5.0.24 + Visual C# 2008 Exdivss Edition

By lucas 2008.12.29

1、用MySQLDriverCS连接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();

        }

    }

}

2、通过ODBC访问mysql数据库:

参考:​​http://www.microsoft.com/china/community/Column/63.mspx​

1.      安装Microsoft ODBC.net:我安装的是mysql-connector-odbc-3.51.22-win32.msi

2.      安装MDAC 2.7或者更高版本:我安装的是mdac_typ.exe 2.7简体中文版

3.      安装MySQL的ODBC驱动程序:我安装的是 odbc_net.msi

4.      管理工具 -> 数据源ODBC –>配置DSN…

5.      解决方案管理中添加引用 Microsoft.Data.Odbc.dll(1.0.3300)

6.      代码中增加引用 using Microsoft.Data.Odbc;

 

 using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Drawing;

using System.Linq;   //vs2005好像没有这个命名空间,在c#2008下测试自动生成的

using System.Text;

using System.Windows.Forms;

using Microsoft.Data.Odbc;

namespace mysql

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +

                                 "SERVER=localhost;" +

                                 "DATABASE=inv;" +

                                 "UID=root;" +

                                 "PASSWORD=831025;" +

                                 "OPTION=3";

            OdbcConnection MyConnection = new OdbcConnection(MyConString);

            MyConnection.Open();

            Console.WriteLine("\n success, connected successfully !\n");

            string query = "insert into test values( ''hello'', ''lucas'', ''liu'')";

            OdbcCommand cmd = new OdbcCommand(query, MyConnection);

            //处理异常:插入重复记录有异常

try{

   cmd.ExecuteNonQuery();

}

catch(Exception ex){

                 Console.WriteLine("record duplicate.");

}finally{

                 cmd.Dispose();

}

/

/

           MyConnection.Close();

        }

    }

}

使用示例:

using System;

using System.Configuration;

using MySql.Data.MySqlClient;

/// <summary>

/// TestDatebase 的摘要说明

/// </summary>

public class TestDatebase

{

    public TestDatebase()

    {

        //

        // TODO: 在此处添加构造函数逻辑

        //

    }

    public static void Main(String[] args)

    {

        MySqlConnection mysql = getMySqlCon();

        //查询sql

        String sqlSearch = "select * from student";

        //插入sql

        String sqlInsert = "insert into student values (12,'张三',25,'大专')";

        //修改sql

        String sqlUpdate = "update student set name='李四' where id= 3";

        //删除sql

        String sqlDel = "delete from student where id = 12";

        //打印SQL语句

        Console.WriteLine(sqlDel);

        //四种语句对象

        //MySqlCommand mySqlCommand = getSqlCommand(sqlSearch, mysql);

        //MySqlCommand mySqlCommand = getSqlCommand(sqlInsert, mysql);

        //MySqlCommand mySqlCommand = getSqlCommand(sqlUpdate, mysql);

        MySqlCommand mySqlCommand = getSqlCommand(sqlDel, mysql);

        mysql.Open();

        //getResultset(mySqlCommand);

        //getInsert(mySqlCommand);

        //getUpdate(mySqlCommand);

        getDel(mySqlCommand);

        //记得关闭

        mysql.Close();

       String readLine = Console.ReadLine();

    }

    /// <summary>

    /// 建立mysql数据库链接

    /// </summary>

    /// <returns></returns>

    public static MySqlConnection getMySqlCon()

    {

        String mysqlStr = "Database=test;Data Source=127.0.0.1;User Id=root;Password=root;pooling=false;CharSet=utf8;port=3306";

        // String mySqlCon = ConfigurationManager.ConnectionStrings["MySqlCon"].ConnectionString;

        MySqlConnection mysql = new MySqlConnection(mysqlStr);

        return mysql;

    }

    /// <summary>

    /// 建立执行命令语句对象

    /// </summary>

    /// <param name="sql"></param>

    /// <param name="mysql"></param>

    /// <returns></returns>

    public static MySqlCommand getSqlCommand(String sql,MySqlConnection mysql)

    {

        MySqlCommand mySqlCommand = new MySqlCommand(sql, mysql);

        //  MySqlCommand mySqlCommand = new MySqlCommand(sql);

        // mySqlCommand.Connection = mysql;

        return mySqlCommand;

    }

    /// <summary>

    /// 查询并获得结果集并遍历

    /// </summary>

    /// <param name="mySqlCommand"></param>

    public static void getResultset(MySqlCommand mySqlCommand)

    {

        MySqlDataReader reader = mySqlCommand.ExecuteReader();

        try

        {

            while (reader.Read())

            {

                if (reader.HasRows)

                {

                    Console.WriteLine("编号:" + reader.GetInt32(0) + "|姓名:" + reader.GetString(1) + "|年龄:" + reader.GetInt32(2) + "|学历:" + reader.GetString(3));

                }

            }

        }

        catch (Exception)

        {

            Console.WriteLine("查询失败了!");

        }

        finally

        {

            reader.Close();

        }

    }

    /// <summary>

    /// 添加数据

    /// </summary>

    /// <param name="mySqlCommand"></param>

    public static void getInsert(MySqlCommand mySqlCommand)

    {

        try

        {

            mySqlCommand.ExecuteNonQuery();

        }

        catch (Exception ex)

        {

            String message = ex.Message;

            Console.WriteLine("插入数据失败了!" + message);

        }

      

    }

    /// <summary>

    /// 修改数据

    /// </summary>

    /// <param name="mySqlCommand"></param>

    public static void getUpdate(MySqlCommand mySqlCommand)

    {

        try

        {

            mySqlCommand.ExecuteNonQuery();

        }

        catch (Exception ex)

        {

            String message = ex.Message;

            Console.WriteLine("修改数据失败了!" + message);

        }

    }

    /// <summary>

    /// 删除数据

    /// </summary>

    /// <param name="mySqlCommand"></param>

    public static void getDel(MySqlCommand mySqlCommand)

    {

        try

        {

            mySqlCommand.ExecuteNonQuery();

        }

        catch (Exception ex)

        {

            String message = ex.Message;

            Console.WriteLine("删除数据失败了!" + message);

        }

    }

}