c#连接MySQL数据库

本文简单介绍连接过程,代码只列出核心部分

1、安装MySQL

首先确保安装了MySQL,并可以正常使用

如果没有,请参考:MySQL的安装

2、引入数据库连接驱动

在项目中引入 MySql.Data.dll

如果没有该文件,下载Connector/NET包,地址:https://dev.mysql.com/downloads/connector/net/,注意对应MySQL版本

安装后,在安装目录找到 MySql.Data.dll 引入

3、dbhelper

    public string getDBdata(string sql)
    {
        System.Data.DataSet ds = new System.Data.DataSet();
        string connStr = @"Database=ent;Data Source=localhost;User Id=root;Password=123456"; 
        try
        {
            using (MySql.Data.MySqlClient.MySqlDataAdapter dataAapter = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, connStr))
            {
                dataAapter.Fill(ds);
                return DatasetToJson(ds);
            }
        }
        catch (Exception e)
        {
            return e.Message.ToString();
        }
    }

用到的 dataset 转json代码参考:

    /// <summary> 
    /// DataSet转换成Json格式 
    /// </summary> 
    /// <paramname="ds">DataSet</param> 
    ///<returns></returns> 
    public static string DatasetToJson(DataSet ds, int total = -1)
    {
        StringBuilder json = new StringBuilder();

        foreach (DataTable dt in ds.Tables)
        { 
            json.Append("{\"total\":");
            if (total == -1)
            {
                json.Append(dt.Rows.Count);
            }
            else
            {
                json.Append(total);
            }
            json.Append(",\"rows\":[");
            json.Append(DataTableToJson(dt));
            json.Append("]}");
        }
        return json.ToString();
    }



    /// <summary> 
    /// dataTable转换成Json格式 
    /// </summary> 
    /// <paramname="dt"></param> 
    ///<returns></returns> 
    public static string DataTableToJson(DataTable dt)
    {
        StringBuilder jsonBuilder = new StringBuilder();

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            jsonBuilder.Append("{");
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                jsonBuilder.Append("\"");
                jsonBuilder.Append(dt.Columns[j].ColumnName);
                jsonBuilder.Append("\":\"");
                jsonBuilder.Append(dt.Rows[i][j].ToString());
                jsonBuilder.Append("\",");
            }
            if (dt.Columns.Count > 0)
            {
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            }
            jsonBuilder.Append("},");
        }
        if (dt.Rows.Count > 0)
        {
            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
        }

        return jsonBuilder.ToString();
    }

4、常见错误

Client does not support authentication protocol requested by server; consider upgrading MySQL client

登陆mysql

mysql -u root -p
#接着输入你的密码

执行解决:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
SELECT plugin FROM mysql.user WHERE User = 'root'; 

给定关键字不在字典中。

这个错误一般是由于 MySql.Data.dll 版本不对应导致,重新下载引入即可

转载于:https://www.cnblogs.com/fanlu/p/11024163.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值