【问题标题】:Connecting installed C# application to local SQL Server 2005 Express - User not associated with trusted sql connection将已安装的 C# 应用程序连接到本地 SQL Server 2005 Express - 用户未与受信任的 sql 连接关联
【发布时间】:2012-05-21 10:58:56
【问题描述】:

(我知道网上有很多这样的问题,我已经花了几天时间试图解决这个问题,但我没有得到任何结果。我是新手,所以请多多包涵)

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”,它会尝试连接“计算机名\用户名”,在我的例子中是“TONY-COMPUTER\TONY”,所以我添加了一个具有该名称的 SQL 用户和角色成员资格 db_datareader 和 db_datawriter 能够读取/写入数据库。

我也尝试过使用如下连接字符串:

"数据源=.\SQLEXPRESS;初始目录=pj;用户 ID=Tony;密码=123;"

然后添加 SQL 用户“Tony”。

但我不断收到同样的错误。令我困惑的是错误消息中没有用户名,我希望看到“TONY-COMPUTER\TONY”或“Tony”但它是空白的。

非常感谢任何帮助!

/托尼

【问题讨论】:

  • 坦率地说,* 在用于表示乘法运算时看起来不错。
  • 您好,您确定您的 app.config 中只有一个字符串连接吗?
  • 其实我没有在 app.config 中定义任何连接字符串。我有一个变量“connstring”,我在应用程序启动时定义它,这就是我每次创建连接时都使用的 connstring。

标签: c# sql-server-2005


【解决方案1】:

如果您遇到 Sql 身份验证错误,但您的程序仍然能够访问您的数据库,那么这表明您正在尝试以两种不同的方式访问数据库。

您确定没有一些不必要的代码尝试访问可能使用某些硬编码连接字符串的数据库吗?

如果您使用 Visual Studio 设计器定义了连接,有时可能会发生这种情况,其设置可能存储在 Designer.cs 文件中,但随后可能会在运行时使用正确的连接字符串被覆盖。在您的开发机器上,硬编码的连接字符串可能会起作用,因此不会被注意到。

这也可以解释为什么错误与实际连接字符串没有任何关系。

【讨论】:

    【解决方案2】:

    你在 Visual Studio 中编程吗?如果是,您是否尝试在服务器资源管理器中添加数据连接?如果您有,可以右键单击您的连接,选择属性,然后您可以选择连接字符串。只需更改用户名和密码即可。

    this也可以提供帮助

    【讨论】:

    • 是的,在笔记本电脑上我正在做所有的编程我有 Visual Studio 2008,我有一个连接到我通过 VS2008 设置的本地 sql 服务器,它工作得很好。当我在其他计算机上安装该应用程序时,就会出现问题。我猜这是其他计算机上的某种 SQL 服务器设置。连接字符串应该可以工作......我认为......:D
    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2013-01-09
    相关资源
    最近更新 更多