【问题标题】:Visual Studio thinks I want to connect to SQL Server instead of MySQL?Visual Studio 认为我想连接到 SQL Server 而不是 MySQL?
【发布时间】:2019-02-09 20:34:07
【问题描述】:

我正在尝试在 Visual Studio 2017 中建立与 MySQL 数据库的连接。到目前为止,使用向导和数据集进行连接工作得非常好,但尝试仅使用代码建立连接会产生此错误:

可以预见的是,谷歌搜索这个错误会产生面向使用 SQL Server 的人的结果,而我不是。我在这里想念什么?我知道我的数据库已经启动并正在运行,因为我的程序的所有其他功能仍然有效。

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["GenericDB.Properties.Settings.GenericDBConnectionString"].ToString()))
{
    try
    {
        string query = "SELECT name, siteID FROM site";
        SqlDataAdapter da = new SqlDataAdapter(query, conn);
        conn.Open();
        DataSet ds = new DataSet();
        da.Fill(ds, "site");
        cmbOrderReceiving.DisplayMember = "name";
        cmbOrderReceiving.ValueMember = "siteID";
        cmbOrderReceiving.DataSource = ds.Tables["site"];
    }

【问题讨论】:

    标签: c# visual-studio mysql-connector


    【解决方案1】:

    您正在使用 Sql Client 库中的类,这些类仅适用于 Sql Server。为 MySql 安装连接器后,您应该在代码文件中添加正确的 using 指令

    using MySql.Data.MySqlClient;
    

    然后用 MySqlXXXX 更改对 SqlXXXX 类的每个引用

    using (MySqlConnection conn = new MySqlConnection(.....))
    {
        try
        {
            string query = "SELECT name, siteID FROM site";
            MySqlDataAdapter da = new MySqlDataAdapter(query, conn);
            conn.Open();
            DataSet ds = new DataSet();
            da.Fill(ds, "site");
            cmbOrderReceiving.DisplayMember = "name";
            cmbOrderReceiving.ValueMember = "siteID";
            cmbOrderReceiving.DataSource = ds.Tables["site"];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多