C#连接MySQL数据库

目录

一、引用MySql.Data.dll文件

二、连接、关闭数据库

三、数据库增删改查

附:完整代码


一、引用MySql.Data.dll文件

1、创建C#窗体应用程序,解决方案资源管理器中找到“引用”,右键,选择添加引用。

2、在MySQL的安装目录下找到MySql.Data.dll文件,选择添加 ,再点击确定。

注:如果程序可能多人互传,MySql.Data.dll文件建议复制到项目文件夹内,防止在其他电脑上找不到该文件路径。

二、连接、关闭数据库

1、引入命名空间

using MySql.Data.MySqlClient;

2、定义连接字段

设置端口号、用户密码、数据库名等

string sql_ip = "127.0.0.1";  //IP
string sql_port = "3306"; //端口号
string sql_user = "root";  //用户名  
string sql_pw = "power123";  //密码
string sql_name = "my_data"; //数据库名
string sql_con_state = "off";  //连接状态

3、连接、关闭数据库

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;//数据库

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        string sql_ip = "127.0.0.1";  //IP
        string sql_port = "3306"; //端口号
        string sql_user = "root";  //用户名  
        string sql_pw = "power123";  //密码
        string sql_name = "my_data"; //数据库名
        string sql_con_state = "off";  //连接状态
        MySqlConnection sql_Test;
        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <returns></returns>
        public int connect_sql()
        {
            string ConnectionString = "server = " + sql_ip + "; userid = " + sql_user + "; password = " + sql_pw + "; database =" + sql_name + "; persistsecurityinfo = True;SslMode=None ;Charset=utf8;";                                                                                                                                                                                                                                     // string ConnectionString = "server = " + this.sql_ip.Text + "; userid = "+this.sql_user.Text+"; password = "+ this.sql_pw.Text + "; database ="+ this.sql_name.Text + "; persistsecurityinfo = True;";
            sql_Test = new MySqlConnection(ConnectionString);
            try
            {
                sql_Test.Open();
                Console.WriteLine("数据库连接成功");//打印信息
                sql_con_state = "on";
            }
            catch (MySqlException ex)
            {
                Console.WriteLine(ex.Message);//打印错误信息
                sql_con_state = "off";
                return -1;
            }
            return 0;
        }

        /// <summary>
        /// 关闭数据库
        /// </summary>
        /// <returns></returns>
        public void close_sql()
        {
            sql_con_state = "off";
            sql_Test.Close();
           
        }
    }
}

三、数据库增删改查

1、增加

        /// <summary>
        /// 增加
        /// </summary>
        /// <param name="table_name">表名</param> 
        /// <param name="content">内容</param>
        /// <param name="value">值</param>
        /// <returns></returns>
        public int insert_data(string table_name, string content, string value)
        {
            string sql;
            sql = "insert into " + table_name + " (" + content + ") value (" + value + ")";
            if (content == "" || value == "" || table_name == "")
            {
                Console.WriteLine("语法错误 "+ sql);//打印错误信息
                return -1;
            }
            if (sql_con_state != "on")
            {
                Console.WriteLine("数据库未连接!");//打印信息
                return -2;
            }
            int res;
            MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
            res = cmd.ExecuteNonQuery();
            return res;
        }

2、删除

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="table_name">表名</param>
        /// <param name="condition">条件</param>
        /// <returns></returns>
        public int del_data(string table_name, string condition)
        {
            string sql;
            sql = "delete from " + table_name + " where " + condition;
            if (table_name == "" || condition == "")
            {
                Console.WriteLine("语法错误 "+ sql);//打印错误信息
                return -1;
            }
            if (sql_con_state != "on")
            {
                Console.WriteLine("数据库未连接!");//打印信息
                return -2;
            }
            int res;
            MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
            res = cmd.ExecuteNonQuery();
            return res;
        }

3、修改

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="table_name">表名</param>
        /// <param name="content">内容</param>
        /// <param name="condition">条件</param>
        /// <returns></returns>
        public int update_data( string table_name, string content, string condition)
        {
            string sql;
            sql = "update " + table_name + " set " + content + " where " + condition;
            if (content == "" || table_name == "" || condition == "")
            {
                Console.WriteLine("语法错误 "+ sql);//打印错误信息
                return -1;
            }
            if (sql_con_state != "on")
            {
                Console.WriteLine("数据库未连接!");//打印信息
                return -2;
            }
            int res;
            MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
            res = cmd.ExecuteNonQuery();
            return res;
        }

4、查询

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="table_name">表名</param>
        /// <param name="content">内容</param>
        /// <param name="condition">条件</param>
        /// <returns></returns>
        public DataTable db_select(string table_name, string content, string condition)
        {
            string sql;
            DataTable dt = new DataTable();
            if (sql_con_state == "on")
            {
                if (condition == "")
                {
                    sql = "select " + content + " from " + table_name; //查找全部
                    if (content == "" || table_name == "" )
                    {
                        Console.WriteLine("语法错误 " + sql);//打印错误信息                       
                    }
                }
                
                else
                {
                    sql = "select " + content + " from " + table_name + " where " + condition;//按照条件查找
                    if (content == "" || table_name == "" || condition == "")
                    {
                        Console.WriteLine("语法错误 " + sql);//打印错误信息                       
                    }
                }
                
                MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
                MySqlDataAdapter mda = new MySqlDataAdapter(cmd); //获取结果集
                mda.Fill(dt);
            }
            else
            {
                Console.WriteLine("数据库未连接!");//打印信息
            }
            return dt;
        }

附:完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;//数据库

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        string sql_ip = "127.0.0.1";  //IP
        string sql_port = "3306"; //端口号
        string sql_user = "root";  //用户名  
        string sql_pw = "power123";  //密码
        string sql_name = "my_data"; //数据库名
        string sql_con_state = "off";  //连接状态
        MySqlConnection sql_Test;
        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <returns></returns>
        public int connect_sql()
        {
            string ConnectionString = "server = " + sql_ip + "; userid = " + sql_user + "; password = " + sql_pw + "; database =" + sql_name + "; persistsecurityinfo = True;SslMode=None ;Charset=utf8;";                                                                                                                                                                                                                                     // string ConnectionString = "server = " + this.sql_ip.Text + "; userid = "+this.sql_user.Text+"; password = "+ this.sql_pw.Text + "; database ="+ this.sql_name.Text + "; persistsecurityinfo = True;";
            sql_Test = new MySqlConnection(ConnectionString);
            try
            {
                sql_Test.Open();
                Console.WriteLine("数据库连接成功");//打印信息
                sql_con_state = "on";
            }
            catch (MySqlException ex)
            {
                Console.WriteLine(ex.Message);//打印错误信息
                sql_con_state = "off";
                return -1;
            }
            return 0;
        }

        /// <summary>
        /// 关闭数据库
        /// </summary>
        /// <returns></returns>
        public void close_sql()
        {
            sql_con_state = "off";
            sql_Test.Close();
           
        }

        /// <summary>
        /// 增加
        /// </summary>
        /// <param name="table_name">表名</param> 
        /// <param name="content">内容</param>
        /// <param name="value">值</param>
        /// <returns></returns>
        public int insert_data(string table_name, string content, string value)
        {
            string sql;
            sql = "insert into " + table_name + " (" + content + ") value (" + value + ")";
            if (content == "" || value == "" || table_name == "")
            {
                Console.WriteLine("语法错误 "+ sql);//打印错误信息
                return -1;
            }
            if (sql_con_state != "on")
            {
                Console.WriteLine("数据库未连接!");//打印信息
                return -2;
            }
            int res;
            MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
            res = cmd.ExecuteNonQuery();
            return res;
        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="table_name">表名</param>
        /// <param name="condition">条件</param>
        /// <returns></returns>
        public int del_data(string table_name, string condition)
        {
            string sql;
            sql = "delete from " + table_name + " where " + condition;
            if (table_name == "" || condition == "")
            {
                Console.WriteLine("语法错误 "+ sql);//打印错误信息
                return -1;
            }
            if (sql_con_state != "on")
            {
                Console.WriteLine("数据库未连接!");//打印信息
                return -2;
            }
            int res;
            MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
            res = cmd.ExecuteNonQuery();
            return res;
        }
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="table_name">表名</param>
        /// <param name="content">内容</param>
        /// <param name="condition">条件</param>
        /// <returns></returns>
        public int update_data( string table_name, string content, string condition)
        {
            string sql;
            sql = "update " + table_name + " set " + content + " where " + condition;
            if (content == "" || table_name == "" || condition == "")
            {
                Console.WriteLine("语法错误 "+ sql);//打印错误信息
                return -1;
            }
            if (sql_con_state != "on")
            {
                Console.WriteLine("数据库未连接!");//打印信息
                return -2;
            }
            int res;
            MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
            res = cmd.ExecuteNonQuery();
            return res;
        }

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="table_name">表名</param>
        /// <param name="content">内容</param>
        /// <param name="condition">条件</param>
        /// <returns></returns>
        public DataTable db_select(string table_name, string content, string condition)
        {
            string sql;
            DataTable dt = new DataTable();
            if (sql_con_state == "on")
            {
                if (condition == "")
                {
                    sql = "select " + content + " from " + table_name; //查找全部
                    if (content == "" || table_name == "" )
                    {
                        Console.WriteLine("语法错误 " + sql);//打印错误信息                       
                    }
                }
                
                else
                {
                    sql = "select " + content + " from " + table_name + " where " + condition;//按照条件查找
                    if (content == "" || table_name == "" || condition == "")
                    {
                        Console.WriteLine("语法错误 " + sql);//打印错误信息                       
                    }
                }
                
                MySqlCommand cmd = new MySqlCommand(sql, sql_Test);
                MySqlDataAdapter mda = new MySqlDataAdapter(cmd); //获取结果集
                mda.Fill(dt);
            }
            else
            {
                Console.WriteLine("数据库未连接!");//打印信息
            }
            return dt;
        }
    }
}

  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C#连接MySQL数据库的步骤和示例代码: 1. 首先需要安装MySQL Connector/NET,可以在MySQL官网下载安装包进行安装。 2. 在C#项目中添加对MySQL Connector/NET的引用。 3. 在代码中使用以下代码进行连接: ```csharp using MySql.Data.MySqlClient; string connStr = "server=127.0.0.1;port=3306;user=root;password=power123;database=my_data;"; MySqlConnection conn = new MySqlConnection(connStr); try { conn.Open(); Console.WriteLine("MySQL连接成功!"); } catch (MySqlException ex) { Console.WriteLine("MySQL连接失败:" + ex.Message);} finally { conn.Close(); } ``` 其中,`connStr`是连接字符串,包含了MySQL服务器的IP地址、端口号、用户名、密码和数据库名。`MySqlConnection`是MySQL Connector/NET提供的连接对象,通过`Open()`方法打开连接,`Close()`方法关闭连接。 4. 连接成功后,可以使用`MySqlCommand`对象执行SQL语句,例如: ```csharp string sql = "SELECT * FROM my_table"; MySqlCommand cmd = new MySqlCommand(sql, conn); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader.GetString(0) + "\t" + reader.GetString(1)); } reader.Close(); ``` 其中,`sql`是要执行的SQL语句,`MySqlCommand`是MySQL Connector/NET提供的执行对象,通过`ExecuteReader()`方法执行SQL语句并返回一个`MySqlDataReader`对象,通过`Read()`方法读取查询结果。 5. 可以使用`DataGridView`控件显示查询结果,例如: ```csharp string sql = "SELECT * FROM my_table";MySqlDataAdapter adapter = new MySqlDataAdapter(sql, conn); DataSet ds = new DataSet(); adapter.Fill(ds, "my_table"); dataGridView1.DataSource = ds.Tables["my_table"]; ``` 其中,`MySqlDataAdapter`是MySQL Connector/NET提供的数据适配器对象,通过`Fill()`方法将查询结果填充到`DataSet`对象中,然后将`DataSet`对象中的表绑定到`DataGridView`控件上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值