如何从 DLL 中获取 MySqlConnection 对象

How can I get a MySqlConnection object from a DLL

我的目标是创建一个 DLL,可用于多个不同的程序,这些程序将 return MySqlConnection 对象。这样,如果凭据发生变化,只需在一个地方进行修改。

现在我可以从项目中包含的另一个 C# 文件成功获取我的 MySqlConnection 对象,但是当我尝试从我的 DLL 中检索它时,我收到以下错误:

Unhandled Exception: System.InvalidOperationException: Connection must be valid and open.

谁能发现我的代码或逻辑中的错误?有没有更好的方法来完成这个?提前致谢!

我的DLL代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//For MySql connections
using MySql.Data.MySqlClient;

namespace LinMySqlConnections
{
    public class MySqlMain
    {
       public static MySqlConnection OpenConnection()
       {
         string server = "database.address";
         string database = "databaseName";
         string user = "dbUser";
         string pass = "dbPass";

         string connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + 
                                    user + ";" + "PASSWORD=" + pass + ";";

         MySqlConnection connection = new MySqlConnection(connectionString);

         return connection;
    }
}

我的主代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using MySql.Data.MySqlClient;
using LinMySqlConnections;

namespace ODSTesting
{
  class Program
  {
    static void Main(string[] args)
    {
      MySqlConnection mainDB = LinMySqlConnections.MySqlMain.OpenConnection();

      if (mainDB != null)
      {
        string query1 = "SELECT * FROM table";

          MySqlCommand cmd = new MySqlCommand(query1, mainDB);
          MySqlDataReader dataReader = cmd.ExecuteReader();
        }
        else
          Console.WriteLine("mainDB was null dude");
    }
  }
}

连接未打开

connection.Open();