WinForm程序中使用 .net MySql 连接器,主窗体未关闭时, MySql 连接没有释放。

Posted scottfan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinForm程序中使用 .net MySql 连接器,主窗体未关闭时, MySql 连接没有释放。相关的知识,希望对你有一定的参考价值。

using (mysqlConnection conn = new MySqlConnection(connectionString))
           
                conn.Open();
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;               
                try
               
                                     
               
                catch (Exception ex)
               
                    return 0;
               
                finally
               
                    if (conn.State == ConnectionState.Open)
                   
                        conn.Close();
                        MySqlConnection.ClearPool(conn);//加入此行可释放连接
                        conn.Dispose();                       
                   
                    GC.Collect();
               
           

上述代码在执行close后,通过SHOW STATUS LIKE 'Threads%'查看,当前连接数未发生变化,退出整个程序后,连接才释放。

所以,在close后,还要执行MySqlConnection.ClearPool(conn),才可以释放连接。

如何使用连接字符串从 Winform 应用程序连接到 Godaddy 中的 SQL Server 数据库

【中文标题】如何使用连接字符串从 Winform 应用程序连接到 Godaddy 中的 SQL Server 数据库【英文标题】:How to connect to SQL Server database in Godaddy from a winform application using connection string 【发布时间】:2019-09-14 15:56:30 【问题描述】:

有一个 Winforms 应用程序,并希望使用连接字符串连接到 godaddy 中的 SQL Server 数据库。

我收到以下错误 - 请帮助。

connString = @"Data Source=IP\SERVER2014;Initial Catalog= ;User ID= ;Password= ";

SqlConnection conn = new SqlConnection(connString);

从 SQL Server Management Studio(本地计算机)打开时出现相同的错误

错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

【问题讨论】:

你确定你的 Mssql 服务器打开了还是你的连接字符串是正确的? 实际上,错误消息说您无法连接到 SQL 服务器,SSMS 也是如此。您是否确保服务器的 sql server 端口(默认为 1433)对您开放?你可以尝试连接到远程服务器的 1433 端口吗?或者 GoDaddy 是否为您提供了另一个连接端口? 服务器在您的本地计算机上,并且您将 IP 用于数据源?尝试使用 Computername/Sql-Servername。确保 sql-service 正在运行(在 services 下检查) @Olli - 发球在 Godaddy。想要从本地计算机或应用程序打开 您可以使用telnet来检查您是否可以访问目标计算机的1433端口。我可以在这里想到两个问题:1)您获得的 IP 地址可能是本地 IP,因此您无法从 GoDaddy 网络外部访问。如果是这种情况,您应该向 GoDaddy 专家寻求帮助。 2)如果您或您的公司有防火墙,您的防火墙可能会阻止您,那么您应该在防火墙中允许目标端口。 【参考方案1】:

连接字符串是问题所在。

数据源=IP\SERVER2014 改为使用数据源=IP。

connString = @"数据源=IP;初始目录=;用户ID=;密码=";

谢谢。

【讨论】:

以上是关于WinForm程序中使用 .net MySql 连接器,主窗体未关闭时, MySql 连接没有释放。的主要内容,如果未能解决你的问题,请参考以下文章

VB.Net 应用程序无法连接到本地 MySQL,但我可以从命令连接

C# .net4.5 winform程序 怎么在没有net环境运行?

可怕的 Java Spring Boot 应用程序未使用 Docker-compose java.net.ConnectException 连接到 MySQL:连接被拒绝

C# .net4.5 winform程序 怎么在没有net环境运行?

如何使用连接字符串从 Winform 应用程序连接到 Godaddy 中的 SQL Server 数据库

如何将 vb.net 连接到 ONLINE MySQL 数据库?