我是 C# 新手。我正在尝试使用简单的 Windows 表单应用程序连接到我的本地 MariaDb 数据库。我的连接已成功建立,但后来被远程主机强制关闭。我正在附上我的代码。你们能检查一下这个代码并帮助我缺少什么吗?预先感谢
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connectionString;
SqlConnection cnn;
connectionString = @"Data Source=xxx.xxx.x.xx,xxxx;Initial Catalog=dataBaseName;User ID=UID;Password=Password";
cnn = new SqlConnection(connectionString);
cnn.Open();
MessageBox.Show("Connection Open !");
cnn.Close();
}
}
}
这是我遇到的错误
System.Data.SqlClient.SqlException:'连接成功 与服务器建立了连接,但在预登录 > 握手期间发生错误。 (提供程序:TCP 提供程序,错误:0 - 现有连接已 被远程主机强行关闭。)'
要从 .NET 连接到 MariaDB,首先将 Nuget 包
MySqlConnector
添加到您的项目中
或
将以下包引用添加到您的
*.csproj
文件中:
<ItemGroup>
<PackageReference Include="MySqlConnector" Version="2.3.5" />
</ItemGroup>
添加导入
using MySqlConnector;
然后您可以使用以下方法连接MariaDB实例:
private static void Connect(string server, string dbName, string userName, string password)
{
string connectionString = $"Server={server};Database={dbName};User={userName};Password={password};";
using (var connection = new MySqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Connection succeeded.");
}
catch (Exception ex)
{
Console.WriteLine($"Connection error: {ex.Message}");
}
}
}
使用示例:
string server = "127.0.0.1";
string dbName = "test";
string userName = "root";
string password = "sa";
Connect(server, dbName, userName, password);