c# - 如何从 DLL 获取 MySqlConnection 对象

标签 c# mysql dll

我的目标是创建一个 DLL,它可以与多个不同的程序一起使用,这些程序将返回 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();

关于c# - 如何从 DLL 获取 MySqlConnection 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995238/

相关文章:

mysql重置root用户权限

mysql - 多个语句来选择不同的行

PHP - 循环乘法元素

java - JMagick:找不到依赖库

c# - 线程和垃圾收集

c# - 在编译时将字符串嵌入到 .NET 程序集中

delphi - 在 Delphi 7 中直接从内存加载 DLL

c# - 无法创建 C# COM DLL。是代码吗?项目属性?安装程序属性? 32-64 位?什么?

c# - 将 IList<Model> 从 View 传递到 Controller

c# - OpenCV模板匹配结果为黑色