C# 连接字符串:它是正确的形式吗?

C# 连接字符串:它是正确的形式吗?,c#,sql-server,visual-studio-2012,C#,Sql Server,Visual Studio 2012,我是SQL数据库C#项目的新手,在windows窗体应用程序中连接数据库时遇到问题,该应用程序是一个单用户应用程序,我只想为自己使用它。我在windows7 64位上使用Visual Studio 2012,在我的DELL Inspiron15 3521笔记本电脑上安装了SQL Server 2008和2012(信息太多?对不起,我非常绝望)。 首先,我不知道我的连接字符串是正确的还是格式正确。这是我的连接字符串: con.ConnectionString = "Data Source=(loc

我是SQL数据库C#项目的新手,在windows窗体应用程序中连接数据库时遇到问题,该应用程序是一个单用户应用程序,我只想为自己使用它。我在windows7 64位上使用Visual Studio 2012,在我的DELL Inspiron15 3521笔记本电脑上安装了SQL Server 2008和2012(信息太多?对不起,我非常绝望)。 首先,我不知道我的连接字符串是正确的还是格式正确。这是我的连接字符串:

con.ConnectionString = "Data Source=(local); Initial Catalog=Library;Integrated Security=True";
因此,请帮助我更正它,另一个问题是,当此代码在Visual Studio 2012中运行时,它告诉我登录请求的“无法打开数据库”库。登录失败。“当我在SQL server中的身份验证为Windows身份验证且我没有任何登录信息添加到数据库时,会发生这种情况。”。是否有任何配置错误,或者只是我的代码错误


在advanced中感谢您您的连接字符串应如下所示:

<connectionStrings>    
    <add name="ConnStringDb1" 
         connectionString="Data Source=localhost\SQLSERVER;Initial Catalog=Library;Integrated Security=True;" 
         providerName="System.Data.SqlClient" /> 
</connectionStrings>

如果您希望使用与VS一起安装的测试/本地数据库,则需要查找
(localdb)\\mssqllocaldb

因此,连接字符串将是:

Data Source=(localdb)\\mssqllocaldb; Initial Catalog=Library;Integrated Security=True
您可以像其他答案一样将其存储在
app.config
中,否则它可能取决于您使用的内容

初始目录
是指将要创建/使用的数据库的名称
集成安全性
意味着它将使用当前windows用户对数据库进行身份验证


要连接到内置的localdb,您需要这两种功能。

谢谢大家的回复,但我在@Corak的回复中找到了我的答案,该网站位于评论中。但是,这是我应该用于字符串连接的正确代码形式:

@"Data Source=(LocalDB)\v11.0; AttachDbFileName=|DataDirectory|\Library.mdf; Integrated Security=True";
在我的例子中,
|DataDirectory |
是我的计算机中数据库(Library.mdf)的路径,因此如果有人使用此代码而不是
|DataDirectory |
像示例一样编写路径,因为如果使用
| DataDirectory |
代码将运行,但数据库中不会发生任何事情(或者至少对我来说它不起作用)。以下是一个例子:

@"Data Source=(LocalDB)\v11.0;AttachDbFileName=AttachDbFileName=C:\Users\John\Documents\Visual Studio 2012\Projects\MyDatabasProject\MyDatabasProject\Library.mdf; Integrated Security=True";
我的sqlserver是VS2012本地数据库服务器v11.0,这是我必须在代码中专门编写的内容


希望它有用

您可以尝试使用
SqlConnectionStringBuilder
当您使用VS 2012时,打开“视图->服务器资源管理器”右键单击“数据连接”->添加连接应该很容易。以下对话框将帮助您进行连接。可以通过“属性”(如果需要)从新创建的连接复制连接字符串您是否尝试过将
Data Source=
设置为您的SQL Server 2008服务器名称,例如
Demo-My-DSK024\SQLEXPRESS
或右键单击服务器名称并在General选项卡上找到的内容?另请参见:不,我没有,正如我所说,我是新手,请告诉我怎么做?谢谢你的回答,但我的连接字符串用于windows for应用程序,从那里我知道C#代码你的代码是XAML语言,如果我是对的,它可以在WPF中使用。所以请用C#制作,我会把它应用到我的项目中,希望它能起作用。感谢you@Nemi-这篇文章向您展示了如何在app/web配置文件中声明连接字符串。有关更多信息,请参阅“将应用程序的连接字符串存储在配置文件中,而不是作为硬编码字符串存储在代码中,这是一种很好的做法。”@Corak correction,它是
app.config
,而不是
web.config
。在建议链接之前,请先查看帖子标签和帖子内容,这些链接可能相对有帮助,但也可能会混淆它们。@P.Pat-是的,该链接只讨论
web.config
,但对于连接字符串,它们在
web.config
app.config
中的声明方式没有区别。我试着用“app/web config”来说明这一点,但下次会更直接一些。