[轉]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); } }}