社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

无法在C中连接到mySQL#

Sch • 5 年前 • 1479 次点击  

我正试图在我的c#应用程序中连接mySQL数据库,但我遇到了一个非常短的代码,无法工作。

我试过很多不同的代码,但都失败了。 我还尝试使用一个远程phpmyadmin数据库和一个本地主机数据库,但都不起作用。

我连接到他们两个,并在我的代码中复制粘贴他们的登录名。 我在phpmyadmin服务器上禁用了防火墙。 我打开了电脑上的3306端口。

using System;
using System.Data.SqlClient;
using System.Windows.Forms;

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

        private void Button1_Click(object sender, EventArgs e)
        {
            string connetionString;
            SqlConnection cnn;
            connetionString = @"Data Source=localhost;Initial Catalog=my_projects;User ID=root;Password=123456";
            cnn = new SqlConnection(connetionString);
            cnn.Open();
            MessageBox.Show("Connection Open  !");
            cnn.Close();
        }
    }
}

它应该弹出一个带有“连接打开!”但它实际加载了30秒,并给我一条错误消息:“找不到服务器或无法访问服务器”。

你知道吗? 我的代码很短,我做的所有搜索都与我得到的代码相似。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50603
 
1479 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Steve
Reply   •   1 楼
Steve    5 年前

首先,您需要下载MySql data connector for.NET。你可以在这里找到它 https://dev.mysql.com/downloads/connector/net/ . 接下来,在安装之后,需要向项目中添加对MySql库的引用。见 here how to do it

或者您可以简单地使用NuGet包管理器自动下载和安装连接器。

在任何情况下,在正确安装并引用库之后,您应该将 using MySql.Data.MySqlClient; 现在可以使用连接到MySql并处理其数据所需的类了。

所以你的代码应该是

using MySql.Data.MySqlClient;

... other code ....

private void Button1_Click(object sender, EventArgs e)
{

    try
    {
        string connetionString = @"Server=localhost;Database=my_projects;User ID=root;Password=123456";
        using(MySqlConnection cnn = new MySqlConnection(connetionString))
        {
            cnn.Open();
            MessageBox.Show("Connection Open  !");
        }
    }
    catch(Exception ex)
    {
        MessageBox.Show("Cannot open connection: Reason:" + ex.Message);
    }

}

请记住,到数据库的连接包含非托管资源,您应该始终添加 using statement 围绕着这些东西。