(我知道在网上有很多这样的问题,我现在花了几天时间试图解决这个问题,但我没有到达任何地方。我是新手,所以请耐心等待我) / p>
1。问题
在我的朋友计算机(Vista Home Premium)上安装我的应用程序SQL Server 2005 Express并在我启动应用程序或在里面打开一个新表单(C#windows窗体)时将数据库(mdf文件)附加到新SQL服务器应用程序我得到以下消息:
System.Data.SqlClient.SqlException:用户''登录失败。用户 与受信任的SQL Server连接无关。
如果我单击“继续”,我可以读取/写入数据库,应用程序按预期工作(直到我打开一个新表单,我再次收到相同的消息)。
2。所以这就是我到目前为止所做的:
我已经开启了“SQL Server和Windows身份验证模式”,因为我已经看到在许多线程中建议,但它没有帮助。
我当前的连接字符串:
“数据源=。\ SQLEXPRESS;初始目录= pj;集成 安全= SSPI;“
由于我的连接字符串包含“。\ SQLEXPRESS”,它将尝试连接“computer-name \ username”,在我的情况下为“TONY-COMPUTER \ TONY”,所以我添加了一个带有该名称的SQL用户和角色成员资格db_datareader和db_datawriter能够读/写DB。
我也尝试过连接字符串,如:
“数据源=。\ SQLEXPRESS;初始目录= pj;用户 ID =托尼;密码= 123;“
然后添加了SQL用户“Tony”。
但我一直得到同样的错误。令我困惑的是,错误消息中没有用户名,我希望看到“TONY-COMPUTER \ TONY”或“Tony”,但它是空白的。
非常感谢任何帮助!
/托尼
答案 0 :(得分:1)
如果您收到Sql身份验证错误,但您的程序仍然可以访问您的数据库,那么这表明您尝试以两种不同的方式访问数据库。
您确定没有一些不必要的代码尝试使用某些硬编码的连接字符串来访问数据库吗?
如果您使用Visual Studio设计器定义了连接,有时可能会发生这种情况,设置可能存储在designer.cs文件中,但可能会在运行时使用正确的连接字符串进行覆盖。在您的开发机器上,硬编码的连接字符串可能有效,因此不会被注意到。
这也可以解释为什么错误与实际连接字符串没有任何关系。
答案 1 :(得分:0)
你是在visual studio中编程吗?如果是,您是否尝试在服务器资源管理器中添加数据连接?如果您有,则可以右键单击您的连接,选择属性,然后您可以选择连接字符串。只需更改用户名密码。
可以提供帮助的是this