C#鏈接操做mysql實例

[轉]C#鏈接操做mysql實例html

本文轉自:http://hi.baidu.com/zhqngweng/item/c4d2520cb7216877bfe97edfmysql

第三方組件: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;
   }
   #endregionsql

另外一篇:數據庫

測試環境:Windows XP + MySql 5.0.24 + Visual C# 2008 Exdivss Edition
By lucas 2008.12.29
一、用MySQLDriverCS鏈接MySQL數據庫
先下載和安裝MySQLDriverCS,地址:
http://sourceforge.net/projects/mysqldrivercs/
在安裝文件夾下面找到MySQLDriver.dll,而後將MySQLDriver.dll添加引用到項目中
注:我下載的是版本是 MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exec#

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();
       }
   }
}函數


二、經過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)
       {this

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);        }    }}

相關文章
相關標籤/搜索