南宫云阳 2024-03-12 17:13 采纳率: 66.7%
浏览 4
已结题

数据库连接读取为什么会报错?

C#上位机连接数据库SQL,已经可以建立数据库名称,可以添加表的名称,可以添加数据,但是读取显示的时候会报"Unable to connect to any of the specified MySQL hosts"这个错误?


            string ConStr = "Data Source = admin-PC; Database = Celou;"
                + "User Id = sa; Password = 123456";
            SqlConnection SqlCon = new SqlConnection(ConStr.ToString());
            try
            {
                SqlCon.Open();
                MessageBox.Show("数据库已连接");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

上面这个都能连接成功
下面这个就报错
为啥呢?

 public void ConnectView()
            {
            string ConStr = "Data Source = admin-PC; Database = Celou;"
               + "User Id = sa; Password = 123456";
            
            MySqlConnection conn = new MySqlConnection(ConStr); //新建连接
            try
            {
                conn.Open();
                MessageBox.Show("已经建立连接");   
                string sqlCmd = "select * from information_demo";     //from后面的是自己创建的表
                MySqlCommand cmd = new MySqlCommand(sqlCmd, conn);
                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    int index = this.dataGridView1.Rows.Add();
                    this.dataGridView1.Rows[index].Cells[0].Value = reader.GetString("ID");
                    this.dataGridView1.Rows[index].Cells[1].Value = reader.GetString("时间");
                    this.dataGridView1.Rows[index].Cells[2].Value = reader.GetString("产品型号");
                    this.dataGridView1.Rows[index].Cells[3].Value = reader.GetString("二维码");
                    this.dataGridView1.Rows[index].Cells[4].Value = reader.GetString("组号");
                    this.dataGridView1.Rows[index].Cells[5].Value = reader.GetString("测试压力");
                    this.dataGridView1.Rows[index].Cells[6].Value = reader.GetString("测试值");
                    this.dataGridView1.Rows[index].Cells[7].Value = reader.GetString("测试结果");
                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-12 17:13
    关注

    引自免费微信小程序:皆我百晓生

    在您的代码中,您尝试连接MySQL数据库时使用了错误的数据库连接类。对于MySQL数据库,应该使用MySqlConnection而非SqlConnection,同时连接字符串格式也与SQL Server有所不同。

    请修改数据库连接部分的代码如下:

    string ConStr = "server=admin-PC;port=3306;database=Celou;user=sa;password=123456;";
    MySqlConnection conn = new MySqlConnection(ConStr); // 使用正确的连接类
    
    try
    {
        conn.Open();
        MessageBox.Show("已经建立连接");   
        // ... 读取数据并填充DataGridView的部分保持不变
    }
    catch (MySqlException ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        conn.Close();
    }
    

    这里假设MySQL服务器运行在默认端口3306上,请根据实际情况调整server(主机名或IP地址)、port(端口号)以及数据库连接的用户名和密码。另外,确认MySQL服务器上确实存在名为Celou的数据库,并且用户sa具有足够的权限访问该数据库。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 修改了问题 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41
  • ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
  • ¥20 求:怎么实现qt与pcie通信
  • ¥50 前后端数据顺序不一致问题,如何解决?(相关搜索:数据结构)
  • ¥15 基于蒙特卡罗法的中介效应点估计代码
  • ¥15 罗技G293和UE5.3