提问者:小点点

无法在桌面应用程序中使用SqlClient连接到SQL服务器


使用SQL的用户名和密码连接到SQL服务器完全没有问题。这些场景工作得很好:

  • 从C#代码使用SqlClient在ASP.NET/MVC
  • 与ssms
  • 带有Visual Studio连接属性向导

例如,这适用于MVC项目:

new SqlConnection("Server=DB1;Database=testdb;User Id=testuser;Password=testuser1;").Open();

但是这个相同的代码在桌面应用程序项目中运行时会失败。它会导致以下内部异常错误:

用户名或密码不正确

(是的,用户和名称之间有一个空格)

我试过:

  • 确保配置管理器中SQL协议正确。
  • 在客户端和服务器上打开防火墙中的端口。
  • 连接到另一个数据库以查看它是数据库而不是客户端。
  • SqlClient的NuGet版本。
  • 重新启动开发机器和服务器。
  • 确保浏览器SQL服务正在运行。
  • 确保主SQL服务设置为自动并正在运行。
  • SqlClient、OLEDB和ODBC以及适当的连接字符串。
  • 将用户名和密码存储在单独的凭据对象中。
  • 在连接字符串中指定集成安全性=False

但还是什么都没有。

为什么我可以从除桌面上运行的代码之外的所有内容连接到SQL服务器。NET应用程序?在连接发生之前是否有什么东西剥离了我的密码?


共1个答案

匿名用户

让我们试试:

data source=DB1;initial catalog=testdb;persist security info=True;user id=testuser;password=testuser1;

用户必须是SQL用户。