我试图在我的C#应用程序中连接mySQL数据库,但是我陷入了一个非常短的代码中而无法正常工作。
我尝试了很多不同的代码,但是所有代码都失败了。 我还尝试使用远程phpmyadmin数据库和localhost数据库,但它们都不起作用。
我已连接到他们两个并在我的代码中复制粘贴了他们的登录名。 我在phpmyadmin服务器上禁用了防火墙。 我已经在PC上打开了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();
}
}
}
它应该弹出一个带有“ Connection Open!”的消息框。但实际上会加载30秒,并显示一条错误消息:“找不到或无法访问服务器”。
你有什么主意吗? 我的代码很短,我所做的所有搜索都与到达的代码相似。
答案 0 :(得分:2)
首先,您需要下载.NET的MySql数据连接器。您可以在https://dev.mysql.com/downloads/connector/net/处找到它。接下来,安装后,您需要在项目中添加对MySql库的引用。参见here how to do it
或者您可以简单地使用NuGet软件包管理器自动下载并安装。
无论如何,在正确安装并引用该库之后,应该将using MySql.Data.MySqlClient;
行添加到cs文件中,现在您可以使用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: Reasong:" + ex.Message);
}
}
请记住,与数据库的连接包含非托管资源,您应始终在此类对象周围添加using statement