2012-08-24 91 views
1

不管我尝试什么,当我尝试对我创建的数据库运行简单的选择查询时,我总是收到以下错误(我在管理工作室中运行了确切的查询,并且工作正常和所使用的登录是sysadmin组):SQL Server 2008与C#的连接

{“无法打开数据库\”测试\“登录所请求的登录 失败\ r \ n登录名失败,用户 ‘JackLarson’。” } System.SystemException {System.Data.SqlClient.SqlException}

我的连接s特林是:

数据源= \ MPIT_TEST;初始目录=测试;集成 安全= TRUE;连接超时= 30;用户实例=真

+0

您使用什么凭证连接到SSMS中的数据库?你的C#运行的凭据是什么? –

+0

你能从你的代码发布查询吗?错误消息让我想知道什么.. –

+0

Sir Crispalot:我不知道如何检查凭据。从错误消息,我认为它是使用我的Windows登录。 David W:查询是“SELECT * FROM dbo.tblMPINum” – Donnachaidh

回答

2

你有你的连接字符串 在设置您的服务器名称,如果你的服务器名是SERVERSQLCOMPUTER您的连接字符串将是:

Data Source=SERVERSQLCOMPUTER \MPIT_TEST;Initial Catalog=[Test_MPITRACKER];Integrated Security=True;Connect Timeout=30;User Instance=True 

此外,始终指定服务器名称,以便能够在每台计算机上使用您的应用程序在网络企业中(servername \ serverinstance是绝对路径) 。\ serverinstance意味着您的应用程序与您的Sql服务器在同一台计算机上

+0

谢谢@Hassan Boutougha更改为包含特定服务器名称修复了问题 – Donnachaidh

+0

欢迎您的朋友;-) –

0

看看错误消息。它说它找不到名为的数据库测试,尽管您在连接字符串中指定了Test_MPITRACKER。它看起来像是有一个问题,当您的数据库名称中包含不良内容_时。

最简单的方法是从数据库名称中删除不需要的内容。

如果你要使用的数据库名称以下划线,尝试用方括号来包装它,所以它看起来是这样的:

Data Source=.\MPIT_TEST;Initial Catalog=[Test_MPITRACKER];Integrated Security=True;Connect Timeout=30;User Instance=True 

但是,我没有测试过这种解决方案,它基于在这里找到的信息:Database created in SQL Server Management Studios cannot be found by Visual Studio 2010

编辑

根据注释的谈话,这不是问题。在这种情况的原因。

+0

对不起,这是我的错字。我的老板对于我们的系统在网上发布的具体细节的可能性是严格的。它找不到的数据库与在连接字符串中调用的数据库相同 – Donnachaidh

+1

我尝试删除下划线,但仍得到相同的错误 – Donnachaidh

+0

尝试创建新的SQL用户,将其映射到'Test_MPITRACKER'数据库,启用SQL认证并在连接字符串中使用他的凭证。要验证此用户的访问是否正常,请确保您可以使用SQL Management Studio使用这些凭据进行登录。这可以为问题提供一些线索。另外,尝试从连接字符串中删除“User Instance”,因为它似乎已被弃用(如另一条评论所述)。 –