您的当前位置:首页正文

c# 连接Mysql数据库

2023-11-10 来源:好兔宠物网
 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>
    /// 建立数据库连接.
    /// </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>
    /// 建立数据库连接.
    /// </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();

一定要记得关闭连接,否则占用服务器资源,严重是导致服务器崩溃