c# - 使用 Dot Connect 和 MySQL 出现“关键字不支持错误”

标签 c# mysql database dotconnect

我正在尝试使用 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/

相关文章:

database - 为什么 UUID 标准很复杂,我应该遵循它们吗?

php - MySQL 检索用户结果集中用户拥有的用户数

c# 重组 FlowLayoutPanel 中的控件

MySQL自动增量每条记录增加超过+1

php - Laravel 身份验证 : how to get user attributes?

mysql - 避免 MySQL 中重复长文本条目的最佳方法

c# - Selenium :如何单击一个可变按钮

c# - WCF 性能、延迟和可伸缩性

c# - 为任意一组键(任意数据类型)获取可散列对象的最有效方法

MySQL:非从属关系