c#连接MySql数据库的两种方法
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(); } //***********************用read方法读数据到textbox********************** string tmp1 = null; string tmp2 = null; string tmp3 = null; query = "select * from test "; OdbcCommand cmd2 = new OdbcCommand(query, MyConnection); OdbcDataReader reader = cmd2.ExecuteReader(); while (reader.Read()) { tmp1 = reader[0].ToString(); tmp2 = reader[1].ToString(); tmp3 = reader[2].ToString(); } this.textBox1.Text = tmp1 + " " + tmp2 + " " + tmp3; */ //************************用datagridview控件显示数据表************************** string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=inv;" + "UID=root;" + "PASSWORD=831025;" + "OPTION=3"; OdbcConnection MyConnection = new OdbcConnection(MyConString); OdbcDataAdapter oda = new OdbcDataAdapter("select * from customer ", MyConnection); DataSet ds = new DataSet(); oda.Fill(ds, "employee"); this.dataGridView1.DataSource = ds.Tables["employee"]; */ MyConnection.Close(); } } }
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(); } //***********************用read方法读数据到textbox********************** string tmp1 = null; string tmp2 = null; string tmp3 = null; query = "select * from test "; OdbcCommand cmd2 = new OdbcCommand(query, MyConnection); OdbcDataReader reader = cmd2.ExecuteReader(); while (reader.Read()) { tmp1 = reader[0].ToString(); tmp2 = reader[1].ToString(); tmp3 = reader[2].ToString(); } this.textBox1.Text = tmp1 + " " + tmp2 + " " + tmp3; */ //************************用datagridview控件显示数据表************************** string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=inv;" + "UID=root;" + "PASSWORD=831025;" + "OPTION=3"; OdbcConnection MyConnection = new OdbcConnection(MyConString); OdbcDataAdapter oda = new OdbcDataAdapter("select * from customer ", MyConnection); DataSet ds = new DataSet(); oda.Fill(ds, "employee"); this.dataGridView1.DataSource = ds.Tables["employee"]; */ MyConnection.Close(); } } }