Connectionstring:它是正确的形式吗?

Posted

技术标签:

【中文标题】Connectionstring:它是正确的形式吗?【英文标题】:Connectionstring: is it the right form? 【发布时间】:2017-08-29 05:29:36 【问题描述】:

我是 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 身份验证并且我没有将任何登录信息添加到数据库时,就会发生这种情况。是否有任何配置,或者只是我的代码错误?

在此致谢

【问题讨论】:

你可以尝试使用SqlConnectionStringBuilder 当您使用 VS 2012 时,应该很容易打开“查看 -> 服务器资源管理器”,右键单击“数据连接”-> 添加连接。以下对话框将帮助您进行连接。可以通过“属性”(如果需要)从新创建的连接中复制连接字符串 您是否尝试过将Data Source = 设置为您的SQL Server 2008 服务器名称,例如Demo-My-DSK024\SQLEXPRESS 或可以通过右键单击服务器名称并在“通用”选项卡上找到的名称? 另见:connectionstrings.com 不,我没有,我说过我是新手,请告诉我该怎么做? 【参考方案1】:

你的连接字符串应该是这样的:

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

【讨论】:

感谢您的回答,但我的连接字符串用于应用程序的窗口,并且我知道 C# 代码的代码是 XAML 语言,如果我是对的,它可以在 WPF 中使用。所以请用 C# 制作它,我会将它应用到我的项目中并希望它有效。谢谢 @Nemi - 这篇文章向您展示了应如何在 app/web 配置文件中声明连接字符串。请参阅Store Connection String in Web.config 了解更多信息。 -- “最好将应用程序的连接字符串存储在配置文件中,而不是作为硬编码字符串存储在代码中。” @Corak 更正,它是app.config 而不是web.config。请先查看帖子标签和帖子内容,然后再建议可能对 OP 相对有帮助但也可能使他们混淆的链接。 @P.Pat - 是的,该链接只讨论了web.config,但对于连接字符串,它们在web.configapp.config 中的声明方式没有区别。我试图用“app/web config”来说明这一点,但下次会更直接​​。 更多信息请参见:Adding and reading from a Config file 和 What is App.config in C#.NET? How to use it?。【参考方案2】:

感谢大家的所有回复,但我在@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,这是我必须在我的代码中专门编写的东西。

希望有用

【讨论】:

【参考方案3】:

如果您正在寻找使用随 VS 安装的测试/本地数据库,您正在寻找 (localdb)\\mssqllocaldb

所以连接字符串将是:

Data Source=(localdb)\\mssqllocaldb; Initial Catalog=Library;Integrated Security=True

您可以像其他答案一样将其存储在app.config 中,否则可能取决于您使用的内容。

Initial Catalog 正在谈论将要创建/使用的数据库的名称Integrated Security 表示它将使用当前 Windows 用户对数据库进行身份验证

您需要这两样东西才能连接到内置的 localdb。

【讨论】:

以上是关于Connectionstring:它是正确的形式吗?的主要内容,如果未能解决你的问题,请参考以下文章

Angular AuthGuard - 它是一个正确的解决方案吗?

未处理 InvalidOperationException 不允许更改“ConnectionString”属性。在 C# 上

如何修复“ConnectionString 属性尚未初始化”

Ruby On Rails:用于其他语言的复数形式

oracle中web.config中"ConnectionString"

DDC从新配置连接数据库