【问题标题】:'Keyword not supported error' Using Dot Connect and MySQL'Keyword not supported error' 使用 Dot Connect 和 MySQL
【发布时间】:2017-08-18 19:23:38
【问题描述】:

我正在尝试使用 C# 将 MySQL 数据库连接到 winform。我收到此错误:System.ArgumentException:'不支持关键字:'主机'。我已经使用测试连接检查了数据库是否具有正确的连接,并且我正在使用的连接字符串是使用服务器资源管理器提供给我的连接字符串。经过研究,问题在于我正在使用的引用或 app.config 本身。有没有人对此问题有任何经验或可以提供任何反馈?这是我正在使用的非常基本的代码 sn-p:

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 上下载正确的包。初学者容易忘记!

【问题讨论】:

  • 试试server 而不是host

标签: c# mysql database dotconnect


【解决方案1】:

什么???您使用的是DotConnect for MySQL,但您使用的是SqlConnection 类。这就是这里的问题,因为SqlConnection 是针对 SQLServer 的。你应该改用using Devart.Data.MySql.MySqlConnection

using (SqlConnection conn = new SqlConnection())
{

首先检查说明一切的文档。 https://www.devart.com/dotconnect/mysql/docs/

【讨论】:

  • 不看说明书的经典案例!阅读文档后,正确的参考是using Devart.Data.MySql;。感谢您为我指明正确的方向,我会用正确的代码更新我的问题,以防其他人遇到与我相同的问题。
猜你喜欢
  • 2022-12-26
  • 2017-04-12
  • 2019-01-01
  • 2016-02-15
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
相关资源
最近更新 更多