C# 如何定义SQL Server 2008数据库的连接字符串?

C# 如何定义SQL Server 2008数据库的连接字符串?,c#,sql,visual-studio-2010,C#,Sql,Visual Studio 2010,我正在使用MS Visual Studio 2010创建一个具有SQL Server 2008数据库访问权限的应用程序,但我创建数据库所做的是添加一个新的“SQL Server 2008数据库项目”,它添加了它,并显示了解决方案资源管理器上的所有内容,但我如何编写连接字符串以连接到它,因为我编写了这个,但它不起作用 SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localho

我正在使用MS Visual Studio 2010创建一个具有SQL Server 2008数据库访问权限的应用程序,但我创建数据库所做的是添加一个新的“SQL Server 2008数据库项目”,它添加了它,并显示了解决方案资源管理器上的所有内容,但我如何编写连接字符串以连接到它,因为我编写了这个,但它不起作用

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;");
更新:

我用了这个:

cnTrupp = new SqlConnection("database=DB_Trupp;server=.\\SQLExpress;Persist Security Info=True;integrated security=SSPI");

但是,当我使用
cnTrupp.Open()
时,它会告诉我登录失败。

您需要指定如何使用数据库进行身份验证。如果要使用集成安全性(这意味着使用本地或域Windows帐户使用Windows身份验证),请将其添加到连接字符串中:

Integrated Security = True;
如果要使用SQL Server身份验证(即指定登录名和密码而不是使用Windows帐户),请添加以下内容:

User ID = "username"; Password = "password";

标准安全性
数据源=服务器名\实例名;初始目录=myDataBase;用户Id=我的用户名;密码=我的密码

可信连接
数据源=服务器名\实例名;初始目录=myDataBase;综合安全=SSPI


这里有一个关于连接字符串的很好的参考资料,我可以随时使用:

将下面的内容复制/粘贴到您的代码中:

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;Integrated Security = True;");
请记住,此解决方案使用您的windows帐户登录

正如John和Adam所说,这与您如何登录(或不登录)有关。请查看John提供的链接,以获得更好的解释。

查看网站,该网站提供了大量连接字符串示例

基本上,你需要三件事:

  • 要连接到的服务器的名称(对于本地计算机,请使用“
    ”或
    (本地)
    localhost
  • 要连接到的数据库的名称
  • 定义安全性的某种方法-集成Windows安全性或定义用户名/密码组合
例如,如果要使用集成安全性连接到本地计算机和AdventureWorks数据库,请使用:

server=(local);database=AdventureWorks;integrated security=SSPI;
或者,如果您的计算机上的SQL Server Express处于默认安装状态,并且您希望连接到AdventureWorksLT2008数据库,请使用以下命令:

server=.\SQLExpress;database=AdventureWorksLT2008;integrated Security=SSPI;

我建议您使用.config文件中的专用元素并从中检索它,而不是直接在代码中编写它

还可以使用
using
语句,这样在使用后,您的连接会自动关闭并释放


查找连接字符串的一个很好的参考:。

都有。好的,但是我要在另一台计算机上安装它,我应该如何知道另一台计算机的名称?安装什么?数据库还是应用程序?连接字符串中唯一关心的是数据库的位置。我想您可能会混淆serverName\instanceName指的是SQLServer,而不是运行代码的机器。
localhost
是本地适配器的系统标识符。它会很好地工作;亚当·罗宾逊:你说得完全对,它就像一个符咒。不知道我从哪里得到的。。。。好了,今天学到了新东西!:-)
localhost
与web或HTTP无关。它可以与SQL Server配合使用。您可以提供localhost vs(local)vs的源代码吗。信息?我一直认为你可以使用localhost…@Abe Miessler:不,你完全正确-localhost也可以。很抱歉给您带来困惑….+1他说得很好,并为连接字符串信息提供了一个资源。@Abe:他的“要点”是“查找”。在解决实际问题的答案中加入这一点是好的。发布与问题无关的信息,虽然很好知道,但不是。我同意仅仅发布链接是软弱的。我认为他说他应该把它放在.config文件中是一个很好的观点(尽管有点离题)。如果他刚刚发布了链接或者刚刚发布了.config建议,我会同意-1分。总的来说,我认为它应该得到0分。但答案中有联系。只需点击引导OP进入MSDN页面的部分,就可以在那里找到关于如何读取它的代码片段。我在降价方面遇到了一些问题,但我仍在学习降价,无法将[和]结合起来