1

我刚刚开始在 C# 上使用 SQL,并且正在尝试连接到远程 SQL 服务器。我已将我的 IP 添加到具有远程访问权限的主机列表中。

我的代码不断产生这个错误:

System.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()); }
}

任何帮助将不胜感激。

谢谢!

4

2 回答 2

2

已编辑

如果您正在使用,MySQL Server那么您的连接字符串是错误的!

试试这个 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

祝你好运!

于 2013-04-25T11:31:34.523 回答
0

创建一个udl文件,如果它连接那么问题是代码/应用程序,如果它没有连接,那么它是你的防火墙,连接字符串,dll库等。这里重要的可能是连接字符串。执行以下操作:创建一个空文本文件并将其重命名为“myconnection.udl”。现在双击该文件,它将启动一个小程序。您可以配置与数据库的连接并对其进行测试。(它将获取已注册的连接库等)。如果它给出确定,然后在记事本中打开 udl 文件,您将看到正确的连接字符串。粘贴到您的应用程序连接设置。UDL 文件通常被误解。它们只是一个保存连接设置的文本文件。然后他们调用连接 dll。如果 udl 文件有效,那么您有一个正确的连接字符串 100%

于 2013-04-25T12:21:15.970 回答