我的目标是创建一个 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/