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.config
或app.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 属性尚未初始化”