我正在尝试使用 C# 将 MySQL 数据库连接到 winform。我收到此错误:System.ArgumentException:'不支持关键字:'主机'。我已经使用测试连接检查了数据库是否具有正确的连接,并且我正在使用的连接字符串是使用服务器资源管理器提供给我的连接字符串。经过研究后,问题在于我正在使用的引用或 app.config 本身。有谁对这个问题有任何经验或可以提供任何反馈吗?这是我正在使用的非常基本的代码片段:
using System;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace savetodatabasepractice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = "User Id=XXXXXX;Host=localhost;Database=XXXXXX";
SqlCommand insertCommand = new SqlCommand("INSERT INTO tbl_newdata (ID, Temperature, Humidity) VALUES (1, 72, 34)", conn);
}
}
}
}
我正在使用 Visual Studio 2017、DotConnect for MySQL、MySQL 服务器和 Wamp Connect。谢谢!
编辑:阅读文档后,具有此格式的示例 C# 程序应如下所示
using System;
using System.Windows.Forms;
using Devart.Data.MySql;
namespace savetodatabasepractice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection("User Id=root;Host=localhost;Database=XXXXXX;");
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "INSERT INTO tbl_newdata (ID, Temperature, Humidity) VALUES (1,73,32)";
cmd.Connection = conn;
conn.Open();
try
{
int aff = cmd.ExecuteNonQuery();
MessageBox.Show(aff + " rows were affected.");
}
catch
{
MessageBox.Show("Error encountered during INSERT operation.");
}
finally
{
conn.Close();
}
}
}
}
关键是不仅要使用正确的引用,还要在 nuget 上下载正确的包。对于初学者来说很容易忘记!
最佳答案
什么???您正在使用 DotConnect for MySQL
但您使用 SqlConnection
类。这就是这里的问题,因为 SqlConnection
适用于 SQLServer。您应该改用using Devart.Data.MySql.MySqlConnection
。
using (SqlConnection conn = new SqlConnection())
{
首先检查说明一切的文档。 https://www.devart.com/dotconnect/mysql/docs/
关于c# - 使用 Dot Connect 和 MySQL 出现“关键字不支持错误”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763747/