系统.InvalidOperationException:内部连接致命错误.打开SQL连接时
本文关键字:连接 打开 SQL 致命错误 系统 内部 InvalidOperationException | 更新日期: 2023-09-27 18:10:55
我刚刚开始在c#上玩SQL,我正试图连接到远程SQL服务器。我已将我的IP添加到具有远程访问权限的主机列表中。
我的代码一直产生这个错误:
系统。InvalidOperationException:内部连接致命错误。
在System.Data.SqlClient.TdsParserStateObject.TryPocessHeader<>
在System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer<>
在System.Data.SqlClient.TdsParserStateObject.TryReadByteArray<。Byte[] buff, Int32 offset, Int32 len, Int32&totalRead>
跟踪实际上比这长,但这是前几行。
这是导致错误的代码(我的实际连接字符串有正确的用户名、密码和数据库名):
connectionString = "Data Source=173.254.28.27,3306;Network Library=DBMSSOCN;Initial Catalog=myDatabase;User Id=myUserName;Password=myPassword;";
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
try { myConnection.Open(); }
catch (Exception e) { Console.WriteLine(e.ToString()); }
}
任何帮助都将是非常感激的。
谢谢!
EDITED
如果您使用的是MySQL Server
,那么您的连接字符串是错误的!
try this connectionString:
_connectionStr = new MySqlConnectionStringBuilder
{
Server = "173.254.28.27",
Database = myDatabase,
UserID = myUserName,
Password = myPassword,
ConnectionTimeout=60,
Port = 3306,
AllowZeroDateTime = true
};
_con = new MySqlConnection(_connectionStr.ConnectionString);
try
{
_con.Open();
}
catch
{
Console.WriteLine("Error, help i can't get connected!");
}
如果您正在使用SQLServer
,请尝试通过连接字符串禁用连接池!
:
Pooling=false
祝你好运!
创建一个udl文件,如果它连接,那么问题是代码/应用程序,如果它不连接,那么它是你的防火墙,连接字符串,dll库等。这里重要的东西可能是连接字符串。执行以下操作:创建一个空文本文件并将其重命名为"myconnection.udl"。现在双击该文件,它将启动一个applet。您可以配置到数据库的连接并对其进行测试。(它将拾取注册的连接库等)。如果它给出OK,然后在记事本中打开udl文件,您将看到正确的连接字符串。粘贴到您的应用程序连接设置。UDL文件通常被误解。它们只是一个保存连接设置的文本文件。然后调用连接dll。如果udl文件工作,那么你有一个正确的连接字符串100%