正在尝试在C#中创建MySQL连接池,但不起作用

正在尝试在C#中创建MySQL连接池,但不起作用,c#,mysql,connection-pooling,C#,Mysql,Connection Pooling,我试图在C#中创建连接池,但不断收到以下错误消息:ConnectionString属性尚未初始化。 我知道这是因为我正在访问try catch中的变量ConnectionString,是否有其他方法可以解决这个问题 MainWindow.cs public MainWindow() { InitializeComponent(); using (var connection = new SqlConnection(DbConnect.Connec

我试图在C#中创建连接池,但不断收到以下错误消息:
ConnectionString属性尚未初始化。

我知道这是因为我正在访问try catch中的变量
ConnectionString
,是否有其他方法可以解决这个问题

MainWindow.cs

    public MainWindow()
    {
        InitializeComponent();

        using (var connection = new SqlConnection(DbConnect.ConnectionString))
        {
            // Reset plot list
            connection.Open();
            ResetPlotList(_filterPlotReference);
            ResetWatchList(_operatorId);
            ResetPositionList(_operatorId);
            connection.Close();
        }
   public class DbConnect
    {  
        public static string ConnectionString = null;
        public void Initialize()
        {
            try
            {
                XDocument doc = XDocument.Load("DbConnect.xml");
                Dictionary<string, string> values =
                    doc.XPathSelectElements("//Connection[@name='default']")
                        .Single()
                        .Elements("Attribute")
                        .ToDictionary(el => (string) el.Attribute("name"), el => (string) el.Attribute("value"));
                _server = values["server"];
                _database = values["database"];
                _uid = values["uid"];
                _password = values["password"];
                Plot = values["plot"];
                ConnectionString = "SERVER=" + _server + ";" + "DATABASE=" +
                                   _database + ";" + "UID=" + _uid + ";" + "PASSWORD=" + _password;
                Connection = new MySqlConnection(ConnectionString);
            }
            catch (FileNotFoundException)
            {
                Environment.Exit(0);
            }
        }
   }
DbConnect.cs

    public MainWindow()
    {
        InitializeComponent();

        using (var connection = new SqlConnection(DbConnect.ConnectionString))
        {
            // Reset plot list
            connection.Open();
            ResetPlotList(_filterPlotReference);
            ResetWatchList(_operatorId);
            ResetPositionList(_operatorId);
            connection.Close();
        }
   public class DbConnect
    {  
        public static string ConnectionString = null;
        public void Initialize()
        {
            try
            {
                XDocument doc = XDocument.Load("DbConnect.xml");
                Dictionary<string, string> values =
                    doc.XPathSelectElements("//Connection[@name='default']")
                        .Single()
                        .Elements("Attribute")
                        .ToDictionary(el => (string) el.Attribute("name"), el => (string) el.Attribute("value"));
                _server = values["server"];
                _database = values["database"];
                _uid = values["uid"];
                _password = values["password"];
                Plot = values["plot"];
                ConnectionString = "SERVER=" + _server + ";" + "DATABASE=" +
                                   _database + ";" + "UID=" + _uid + ";" + "PASSWORD=" + _password;
                Connection = new MySqlConnection(ConnectionString);
            }
            catch (FileNotFoundException)
            {
                Environment.Exit(0);
            }
        }
   }
公共类DbConnect
{  
公共静态字符串ConnectionString=null;
公共无效初始化()
{
尝试
{
XDocument doc=XDocument.Load(“DbConnect.xml”);
字典值=
doc.XPathSelectElements(“//连接[@name='default']”)
.Single()
.要素(“属性”)
.ToDictionary(el=>(string)el.Attribute(“名称”),el=>(string)el.Attribute(“值”);
_服务器=值[“服务器”];
_数据库=值[“数据库”];
_uid=值[“uid”];
_密码=值[“密码”];
绘图=值[“绘图”];
ConnectionString=“SERVER=“+\u SERVER+”;“+”数据库=”+
_数据库+”;“+”UID=“+”UID+”;“+”PASSWORD=“+”PASSWORD;
连接=新的MySqlConnection(ConnectionString);
}
捕获(FileNotFoundException)
{
环境。退出(0);
}
}
}

为什么要创建自己的连接池?它是为您完成的,除非您明确禁用它(例如,请参阅)。谢谢Richard。我有点糊涂了。上的
OpenConnection()
CloseConnection()
方法是否等同于创建连接池?连接池是ADO.NET的一部分,只要您处理了
DbConnect
实例(或者说是从它派生的类型),它就会进入连接池;但您所做的任何操作都不会直接创建连接池:它隐式存在。