您的位置:首页 > 数据库 > MySQL

c#连接mysql

2015-12-03 14:48 609 查看
第三方组件: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);

       }

   }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: