ServerVersion = 'conn.ServerVersion'抛出了一个'System.InvalidOperationException'类型的异常。

4

我看到其他人已经解答了这个错误,但是我似乎无法让它起作用。我正在尝试在本地连接到SQL Server数据库项目。

当执行以下操作时,我会在Open()上抛出此错误:

SqlConnection conn = null;
conn = new SqlConnection(connection)
conn.Open()

其中 connection 是从我的 webconfig 文件中传递的连接字符串。我在网上找到了一些示例,尝试使用了以下三个连接字符串,但每次都收到相同的错误:

<add name="TICKETING_CONNECTION" connectionString="Server=(local); DataBase=Ticketing_DB; Integrated Security=SSPI"/>

<add name="CONN"
connectionString="Data Source=localhost; Integrated Security=SSPI;Initial Catalog=Ticketing_DB"
providerName="System.Data.SqlClient" />

<add name="CONN2"
connectionString="Data Source=(local);Initial Catalog=Ticketing_DB;"
providerName="System.Data.SqlClient"
/>

问题可能来自于数据库在我的计算机上的路径吗?我已经尝试复制c:\路径,但没有成功。我在网上看到一些示例使用了.mdf文件,但我的项目中也没有这个文件。

这是我第一次尝试连接到数据库项目,所以任何帮助或建议将不胜感激。


你是否在机器上使用了SQL Server的命名实例?可能是默认安装了命名实例的SQL Server Express吗?如果是这样,你的数据源应该类似于localhost\sqlexpress - squillman
1个回答

8
如果您使用的是Visual Studio,请尝试转到“服务器资源管理器”,右键单击“数据连接”,然后通过选择“数据源”为Microsoft SQL Server,提供程序为.NET Framework提供程序,添加新连接。在服务器名称下检查SQL Server是否与您的计算机名称列出。然后尝试提供数据库详细信息和SQL身份验证的用户名和密码,或选择Windows进行Windows身份验证。然后进行测试连接。如果一切正常,单击“确定”将添加数据连接。右键单击新添加的数据连接的属性,导航到属性以提取连接字符串。将其与您的连接字符串进行比较。这可以帮助您解决问题。

谢谢,我的原因是“帐户密码已过期”。 我取消了“强制密码过期”选项。它有效了。 - Lj Kenji
对我来说,在连接字符串中使用systemname的括号并不好,尽管在使用using()时可以正常工作。 - sdjuan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接