c# 连接Mysql数据库
1 #region 建立MySql数据库连接 2 /// <summary> 3 /// 建立数据库连接. 4 /// </summary> 5 /// <returns>返回MySqlConnection对象</returns> 6 public MySqlConnection getmysqlcon() 7 { 8 //http://sosoft.cnblogs.com/ 9 string M_str_sqlcon = "server=localhost;user id=root;password=root;database=abc"; //根据自己的设置10 MySqlConnection myCon = new MySqlConnection(M_str_sqlcon);11 return myCon;12 }13 #endregion14 15 #region 执行MySqlCommand命令16 /// <summary>17 /// 执行MySqlCommand18 /// </summary>19 /// <param name="M_str_sqlstr">SQL语句</param>20 public void getmysqlcom(string M_str_sqlstr)21 {22 MySqlConnection mysqlcon = this.getmysqlcon();23 mysqlcon.Open();24 MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);25 mysqlcom.ExecuteNonQuery();26 mysqlcom.Dispose();27 mysqlcon.Close();28 mysqlcon.Dispose();29 }30 #endregion31 32 #region 创建MySqlDataReader对象33 /// <summary>34 /// 创建一个MySqlDataReader对象35 /// </summary>36 /// <param name="M_str_sqlstr">SQL语句</param>37 /// <returns>返回MySqlDataReader对象</returns>38 public MySqlDataReader getmysqlread(string M_str_sqlstr)39 {40 MySqlConnection mysqlcon = this.getmysqlcon();41 MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);42 mysqlcon.Open();43 MySqlDataReader mysqlread = mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);44 return mysqlread;45 }46 #endregion


1 using System.Data; 2 3 using MySql.Data.MySqlClient; 4 5 6 7 8 9 private MySqlConnection conn; 10 11 private DataTable data; 12 13 private MySqlDataAdapter da; 14 15 private MySqlCommandBuilder cb; 16 17 private DataGrid dataGrid; 18 19 20 21 private void connectBtn_Click(object sender, System.EventArgs e) 22 23 { 24 25 if (conn != null) 26 27 conn.Close(); 28 29 30 31 string connStr = String.Format("server={0};user id={1}; password={2}; port={3}; database=mysql; pooling=false; charset=utf8", 32 33 server.Text, userid.Text, password.Text, 3306); 34 35 36 37 try 38 39 { 40 41 conn = new MySqlConnection( connStr ); 42 43 conn.Open(); 44 45 46 47 GetDatabases(); 48 49 MessageBox.Show("连接数据库成功!"); 50 51 } 52 53 catch (MySqlException ex) 54 55 { 56 57 MessageBox.Show( "Error connecting to the server: " + ex.Message ); 58 59 } 60 61 } 62 63 64 65 private void GetDatabases() 66 67 { 68 69 MySqlDataReader reader = null; 70 71 MySqlCommand cmd = new MySqlCommand("SHOW DATABASES", conn); 72 73 74 75 try 76 77 { 78 79 reader = cmd.ExecuteReader(); 80 81 databaseList.Items.Clear(); 82 83 while (reader.Read()) 84 85 { 86 87 databaseList.Items.Add( reader.GetString(0) ); 88 89 } 90 91 } 92 93 catch (MySqlException ex) 94 95 { 96 97 MessageBox.Show("Failed to populate database list: " + ex.Message ); 98 99 }100 101 finally 102 103 {104 105 if (reader != null) reader.Close();106 107 }108 109 }110 111 112 113 private void databaseList_SelectedIndexChanged(object sender, System.EventArgs e)114 115 {116 117 MySqlDataReader reader = null;118 119 conn.ChangeDatabase(databaseList.SelectedItem.ToString());120 121 //http://sosoft.cnblogs.com/122 123 MySqlCommand cmd = new MySqlCommand("SHOW TABLES", conn);124 125 try 126 127 {128 129 reader = cmd.ExecuteReader();130 131 tables.Items.Clear();132 133 while (reader.Read()) 134 135 {136 137 tables.Items.Add( reader.GetString(0) );138 139 }140 141 }142 143 catch (MySqlException ex) 144 145 {146 147 MessageBox.Show("Failed to populate table list: " + ex.Message );148 149 }150 151 finally 152 153 {154 155 if (reader != null) reader.Close();156 157 }158 159 }160 161 162 163 private void tables_SelectedIndexChanged(object sender, System.EventArgs e)164 165 {166 167 data = new DataTable();168 169 170 171 da = new MySqlDataAdapter("SELECT * FROM " + tables.SelectedItem.ToString(), conn );172 173 cb = new MySqlCommandBuilder( da ); // 此处必须有,否则无法更新174 175 176 177 da.Fill( data );178 179 180 181 dataGrid.DataSource = data;182 183 }184 185 186 187 private void updateBtn_Click(object sender, System.EventArgs e)188 189 {190 191 DataTable changes = data.GetChanges();192 193 da.Update( changes );194 195 data.AcceptChanges();196 197 }

http://www.cnblogs.com/sosoft/p/kaifajishu.html
c# 连接Mysql数据库
标签:
小编还为您整理了以下内容,可能对您也有帮助:
c#怎么连接数据库 用MySQL 详解
1、mysql官网下载 .net连接器
2、引用下载后的mysql.data.dll
3、程序开始加:using MySql.Data.MySqlClient;
4、连接数据库:
private void button1_Click(object sender, EventArgs e)//登入按钮{
string power = comboBox1.Text.Trim();
string user = textBox1.Text.Trim();
string psd = textBox2.Text.Trim();
string ipaddress = "";
string mysqluser = "";
string mysqlpsd = "";
if (user == "")
{
MessageBox.Show("请输入用户名");
}
else if (psd == "")
{
MessageBox.Show("请输入密码");
}
else
{
try
{
try
{
string[] getconfig = File.ReadAllLines("E:/project/configure.txt", Encoding.GetEncoding("gb2312"));
ipaddress = getconfig[0].Split(':')[1];//读取ip地址
mysqluser = getconfig[1].Split(':')[1];//读取数据库账号
mysqlpsd = getconfig[2].Split(':')[1]; //读取数据库密码
}
catch (Exception)
{
MessageBox.Show("配置文件丢失");
return;
}
string query = "SET names gb2312;SELECT COUNT(id) FROM fx_user WHERE name='" + user + "' AND password=MD5('" + psd + "') AND userid='" + power + "'";
MySqlConnection cn = new MySqlConnection("server=" + ipaddress + ";user id=" + mysqluser + ";Password=" + mysqlpsd + ";database=system;charset=gb2312");
cn.Open();
MySqlCommand cm = new MySqlCommand(query, cn);
MySqlDataReader read = cm.ExecuteReader(); //搜索满足 用户名,密码,操作员的记录。
//如果记录没有-->密码或用户名错误
if (read.Read()) //如果记录多余1条-->数据错误,联系管理员
{ //只有一条记录则成功登入
int x = Int32.Parse(read[0].ToString());
if (x == 0)
{
MessageBox.Show("用户名或密码错误");
}
else if (x > 1)
{
MessageBox.Show("用户冲突,请联系管理员");
}
else if (x == 1)
{
// MessageBox.Show("登入成功");
main mf = new main(power, ipaddress, mysqluser, mysqlpsd); //将操作员 和 IP地址传入 主窗体
mf.Show();
this.Hide();
cn.Close();
}
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("数据库连接失败1");
break;
case 1045:
MessageBox.Show("数据库密码或用户名错误");
break;
default:
MessageBox.Show("数据库连接失败2");
break;
}
}
}
}
c#怎么链接mysql数据库
用c#连接MySQL数据库需要用到mysql-connector-net,这个组件网上查找就可以下载,安装直接按next,按默认路径安装;
(2)新建一个Winfrom工程后,引用这个组件
在解决方案资源管理器中右键引用->添加引用->浏览,浏览路径为安装mysql-connector-net的路径,如我的路径为:C:Program Files (x86)MySQLMySQL Connector Net 6.6.4Assembliesv2.0
选择MySql.Data.dll,再确定
(3)在工程中添加:
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
/// 建立数据库连接.
/// </summary>
/// <returns>返回MySqlConnection对象</returns>
public MySqlConnection getmysqlcon()
{
//http://sosoft.cnblogs.com/
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;
}
c#怎么链接mysql数据库
用c#连接MySQL数据库需要用到mysql-connector-net,这个组件网上查找就可以下载,安装直接按next,按默认路径安装;
(2)新建一个Winfrom工程后,引用这个组件
在解决方案资源管理器中右键引用->添加引用->浏览,浏览路径为安装mysql-connector-net的路径,如我的路径为:C:Program Files (x86)MySQLMySQL Connector Net 6.6.4Assembliesv2.0
选择MySql.Data.dll,再确定
(3)在工程中添加:
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
/// 建立数据库连接.
/// </summary>
/// <returns>返回MySqlConnection对象</returns>
public MySqlConnection getmysqlcon()
{
//http://sosoft.cnblogs.com/
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;
}
C#链接MySQL数据库的实现步骤有哪些
C#连接数据库有以下几个步骤:
1:使用配置的数据库连接串,创建数据库连接 Connection 对象
2:构建操作的sql语句
3:定义command对象
4:打开数据连接
5:执行命令
举一个例子,删除操作
public class StudentService{
//从配置文件中读取数据库连接字符串
private readonly static string connString = ConfigurationManager.ConnectionStrings["aConnectionString"].ToString();
private readonly static string dboOwner = ConfigurationManager.ConnectionStrings["DataBaseOwner"].ToString();
AdoNetModels.Student model = new Student();
#region 删除数据1
public int DeleteStudent(int stuID)
{
int result = 0;
// 数据库连接 Connection 对象
SqlConnection connection = new SqlConnection(connString);
// 构建删除的sql语句
string sql = string.Format("Delete From Student Where stuID={0}", stuID);
// 定义command对象
SqlCommand command = new SqlCommand(sql, connection);
try
{
connection.Open();
result = command.ExecuteNonQuery(); // 执行命令
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
connection.Close();
}
return result;
}
#endregion
C#如何连接其他数据库,如MYSQL或者Postgresql
using System;
using System.Data.SqlClient;
using System.Data;
public class DB
{
static string Sql="server=.;uid=名字;pwd=密码;database=你要连的数据库";
private SqlConnection objSqlConnection = new SqlConnection(Sql);
//以上是加载驱动你要连到的数据库
public int Update(string sql)
{
objSqlConnection.Open();
SqlCommand objSqlCommand = new SqlCommand(sql,objSqlConnection);
int r=objSqlCommand.ExecuteNonQuery();
objSqlConnection.Close();
return r; //r如果是=1就是增删改成功!
}
//上面的方法是增删改
public DataSet Select(string sql)
{
DataSet objDataSet = new DataSet();
SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter(sql,objSqlConnection);
objSqlDataAdapter.Fill(objDataSet);
return objDataSet;
}
//这个方法是查;
}
这是一个连接SQL的类;
你建这样的一个类,在哪个地方要就实例后调他的方法带入一个参数;
参数是SQL增删改查的语句;
如果要在你做的那个程序实现增删改的话就
DB db = new DB();
int i = DB.Update(增的SQL语句);
// 返回的i是1就是成功了!
===========================
DB db = new DB();
int i = DB.Update(删的SQL语句);
// 返回的i是1就是成功了!
==========================
DB db = new DB();
int i = DB.Update(改的SQL语句);
// 返回的i是1就是成功了!
========================如果要查询
DB db = new DB();
DataSet ds = new DataSet();
ds = db.Select(查的SQL语句);
//查询出的结果就放在ds里面;
C#如何连接其他数据库,如MYSQL或者Postgresql
using System;
using System.Data.SqlClient;
using System.Data;
public class DB
{
static string Sql="server=.;uid=名字;pwd=密码;database=你要连的数据库";
private SqlConnection objSqlConnection = new SqlConnection(Sql);
//以上是加载驱动你要连到的数据库
public int Update(string sql)
{
objSqlConnection.Open();
SqlCommand objSqlCommand = new SqlCommand(sql,objSqlConnection);
int r=objSqlCommand.ExecuteNonQuery();
objSqlConnection.Close();
return r; //r如果是=1就是增删改成功!
}
//上面的方法是增删改
public DataSet Select(string sql)
{
DataSet objDataSet = new DataSet();
SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter(sql,objSqlConnection);
objSqlDataAdapter.Fill(objDataSet);
return objDataSet;
}
//这个方法是查;
}
这是一个连接SQL的类;
你建这样的一个类,在哪个地方要就实例后调他的方法带入一个参数;
参数是SQL增删改查的语句;
如果要在你做的那个程序实现增删改的话就
DB db = new DB();
int i = DB.Update(增的SQL语句);
// 返回的i是1就是成功了!
===========================
DB db = new DB();
int i = DB.Update(删的SQL语句);
// 返回的i是1就是成功了!
==========================
DB db = new DB();
int i = DB.Update(改的SQL语句);
// 返回的i是1就是成功了!
========================如果要查询
DB db = new DB();
DataSet ds = new DataSet();
ds = db.Select(查的SQL语句);
//查询出的结果就放在ds里面;
请问用C#连接MYSQL数据库怎么连接啊,一般语句放在哪些类里面啊,很急,拜托高手指点啊
一般连接数据库的字符串都是放到config配置文件里面的,然后用你自己的方法或者类来调用
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="项目名称.Properties.Settings.connectstring"
connectionString="Data Source=服务名;Initial Catalog=数据库名;User ID=sa;Password=sa"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
C# 连接MySql 数据库,出错
1、检查连接字符串是否有问题
2、mysql默认是不允许远程访问的,也就是如果通过IP、域名访问的话,默认是被关闭的,除非是localhost或者127.0.0.1可以访问,服务器如果不是这个IP,需要打开mysql
远程访问。具体如何打开,请【百度搜索:mysql
开启
远程访问】
C# 连接MySql 数据库,出错
1、检查连接字符串是否有问题
2、mysql默认是不允许远程访问的,也就是如果通过IP、域名访问的话,默认是被关闭的,除非是localhost或者127.0.0.1可以访问,服务器如果不是这个IP,需要打开mysql
远程访问。具体如何打开,请【百度搜索:mysql
开启
远程访问】
C#连接Mysql的问题
看你的情况,应该是程序里Conn.Open()后,在处理完数据后没有Close(),这样在长时间闲置后,MySQL Server会关闭超时的连接,当你的程序再次执行SqlCmd的时候,因为连接已经被MySQLServer端关闭了,所以就会出错。
解决的方法应该有这几种:
1、在MySQL配置文件中修改连接超时时间,但这个方法最好不用,因为如果你的客户端数量过多的话,会造成大量的闲置连接占用服务器资源。
2、在你的c#程序里,执行SqlCmd之前判断一下Conn.State连接状态,看看是否需要执行一下Conn.Open()
比如在你的SqlCmd前面加一行if (Conn.State!=ConnectionState.Open) Conn.Open();
3、如果还是不行的话,就试试把代码写到try catch里试试追问好的,谢谢,我试一下~
C#连接数据库问题 !!50分!
要使用MySQLDriverCS或odbc.net + mysql 驱动才可以.
OleDbConnection conn = new OleDbConnection("Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;" );
还有using是用oledb,其他和SQL Server一样。
例子:
最好用ySQLDriverCS它比odbc.net 要快.
http://www.microsoft.com/china/community/Column/63.mspx
采用MySQLDriverCS驱动的操作mysql
MySQLConnection conn = null;
string tmp = null;
string connstr = "Data Source=test;Password={2};User ID={1};Location={0};";
connstr=String.Format(connstr,this._ServiceName.Text.Trim(),this._UserId.Text.Trim(),this._Password.Text.Trim());
string query=" drop table if exists dbtable ";
try
{
string time1=System.DateTime.Now.ToString();
conn = new MySQLConnection(connstr);
conn.Open();
MySQLCommand cmd = new MySQLCommand(query, conn);
cmd.ExecuteNonQuery();
query="create table dbtable (id int ,col1 char(20) ,col2 char(20),col3 char(20) ) ";
cmd.CommandText=query;
cmd.ExecuteNonQuery();
query = "insert into test.dbtable values(10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";
cmd.CommandText=query;
for(int i = 0; i < 1000; i++)
{
cmd.ExecuteNonQuery();
}
//cmd.Dispose();
//conn.Close();
query = "select * from test.dbtable";
//MySQLCommand cmd2 = new MySQLCommand(query, conn);
//conn.Open();
cmd.CommandText=query;
MySQLDataReader reader = cmd.ExecuteReaderEx();
while(reader.Read())
{
tmp = reader[0].ToString();
tmp = reader[1].ToString();
tmp = reader[2].ToString();
tmp = reader[3].ToString();
}
reader.Close();
//conn.Close();
query = "delete from test.dbtable";
cmd.CommandText =query;
//MySQLCommand cmd3 = new MySQLCommand(query, conn);
//conn.Open();
cmd.ExecuteNonQuery();
query=" drop table if exists dbtable ";
cmd.CommandText =query;
cmd.ExecuteNonQuery();
cmd.Dispose();
MessageBox.Show(time1+"---" +System.DateTime.Now.ToString(),"操作完成!");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
采用 ODBC.net 操作mysql
注意不但要装odbc.net 还要装 MySQL ODBC 3.51 驱动.
Microsoft.Data.Odbc.OdbcConnection conn=null;
string tmp = null;
string constr="DRIVER={MySQL ODBC 3.51 Driver};DATABASE=test;SERVER="+
this._ServiceName.Text.Trim()+";UID="+this._UserId.Text.Trim()+
";PASSWORD="+this._Password.Text+
";PORT=3306;OPTION=149515;";
string query=" drop table if exists dbtable ";
try
{
string time1=System.DateTime.Now.ToString();
conn = new OdbcConnection(constr);
conn.Open();
OdbcCommand cmd = new OdbcCommand(query, conn);
cmd.ExecuteNonQuery();
query="create table dbtable (id int ,col1 char(20) ,col2 char(20),col3 char(20) ) ";
cmd.CommandText=query;
cmd.ExecuteNonQuery();
query = "insert into test.dbtable values(10,'disksidkfsdi', 'asdfaf', 'adsfasdf')";
cmd.CommandText=query;
for(int i = 0; i < 1000; i++)
{
cmd.ExecuteNonQuery();
}
//cmd.Dispose();
//conn.Close();
query = "select * from test.dbtable";
//OdbcCommand cmd2 = new OdbcCommand(query, conn);
//conn.Open();
cmd.CommandText=query;
OdbcDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
tmp = reader[0].ToString();
tmp = reader[1].ToString();
tmp = reader[2].ToString();
tmp = reader[3].ToString();
}
reader.Close();
//conn.Close();
query = "delete from test.dbtable";
cmd.CommandText=query;
//OdbcCommand cmd3 = new OdbcCommand(query, conn);
//conn.Open();
cmd.ExecuteNonQuery();
query=" drop table if exists dbtable ";
cmd.CommandText=query;
cmd.ExecuteNonQuery();
cmd.Dispose();
MessageBox.Show(time1+"---" +System.DateTime.Now.ToString(),"操作完成!");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
//更简单的方法
OdbcConnection thisConnection= new OdbcConnection(
DRIVER={MySQL ODBC 3.51 Driver};"+
"SERVER=localhost;"+
"DATABASE=test;"+
"UID=root;"+
"PASSWORD=;"
thisConnection.open();
//代码
thisConnection.close();
一定要记得关闭连接,否则占用服务器资源,严重是导致服务器崩溃