SqlConnection.Open上的InvalidOperationException

时间:2014-10-23 12:24:30

标签: c# sql

我正在设计一个小型IRC机器人,用于聊天中的游戏。

源,程序和SQL连接细节永远不会公开,所以我不担心安全性。

我的连接字符串如下:

"Server=sql.mydomain.com,3306;Database=sqldatabasename;User id=sqlusername;Password=sqlpassword;"

毋庸置疑,我在这里搞砸了细节。 在谷歌搜索并找到http://www.developerfusion.com/tools/sql-connection-string/后,我用它来生成这个字符串:

"Data Source=sql.mydomain.com,3306;Initial Catalog=sqldatabasename;Integrated Security=False;User ID=sqlusername;Password=sqlpassword;"

在这两种情况下,我都尝试使用以下代码打开连接:

using (var sql = new SqlConnection(connectionString))
{
    sql.Open();
    //SQL operations here
}

但是每次我都在sql.Open()上收到InvalidOperationException。 我绝对肯定我在连接字符串中输入的详细信息是正确的,并且基于我在谷歌上发现的,最可能的原因似乎是连接字符串,所以我不确定我是什么我做错了。

编辑: 异常消息只是“内部连接致命错误”。 根据MSDN,SqlConnection.Open上的InvalidOperationException只能表示以下两点之一: 连接字符串中未提供服务器或数据源 或者连接已经打开。

我假设第一个也可以触发服务器或数据源以某种方式无效,因为我尝试打开它:

if (sql.State != ConnectionState.Open) sql.Open();

我仍然收到错误。

1 个答案:

答案 0 :(得分:0)

做了一些搜索,你的字符串似乎很完美。甚至把我的字符串改成了你的字符串,它在这里工作。我唯一能找到的就是这个,但我不知道它是否有帮助或机器人(值得一试)。

  

" Data Source = tcp:sql.mydomain.com,3306; Initial Catalog = sqldatabasename; Integrated Security = False; User ID = sqlusername; Password = sqlpassword;"

this网站上看到它但又一次,我不知道它是否会发生任何变化。

希望有所帮助