'关键字不支持错误'使用Dot Connect和MySQL

时间:2017-08-18 19:23:39

标签: c# mysql database dotconnect

我正在尝试使用C#将MySQL数据库连接到winform。我收到此错误:System.ArgumentException:'不支持关键字:' host'。我已经使用测试连接检查了数据库是否有正确的连接,我使用的连接字符串是使用服务器资源管理器提供给我的连接字符串。在进行研究之后,问题在于我使用或在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上下载正确的包。初学者容易忘记!

1 个答案:

答案 0 :(得分:0)

什么??? 您使用的是DotConnect for MySQL,但您使用的是SqlConnection课程。这就是问题,因为SqlConnection适用于SQLServer。您应该使用using Devart.Data.MySql.MySqlConnection代替。

using (SqlConnection conn = new SqlConnection())
{

首先查看说明所有内容的文档。 https://www.devart.com/dotconnect/mysql/docs/

相关问题