如何从数据库中获取连接字符串

Posted

技术标签:

【中文标题】如何从数据库中获取连接字符串【英文标题】:How to get the connection String from a database 【发布时间】:2012-05-15 19:46:39 【问题描述】:

我已经使用 SQL Server Management Studio 创建了一个数据库,现在我想在我的 C# 应用程序中使用它。我需要连接字符串吗?

在哪里可以找到连接字符串,我的数据库存储在哪里?

我是否必须发布它或类似的东西,还是它在我的文档中的某个地方?

using (var conn = new SqlConnection("your connection string to the database"))

如何获取连接字符串?在哪里可以找到连接字符串以复制粘贴到上述部分?

如何发布我的数据库以便 Visual Studio 可以获取它?那我可以直接拉那里的连接字符串吗?

【问题讨论】:

看看如何生成连接字符串youtu.be/1WgO7CDSmu8 【参考方案1】:

获取连接字符串的最简单方法是使用 Visual Studio 中的“服务器资源管理器”窗口(菜单 查看服务器资源管理器)并从该窗口连接到服务器窗口。

然后你可以在已连接服务器的属性中看到连接字符串(选择连接并按F4或Alt+Enter或在右键菜单中选择属性)。

高级连接字符串设置:在创建连接时,您可以通过单击“高级”来修改任何高级连接字符串选项,例如 MARS、弹性、timeot、池配置等。 ..”按钮位于“添加连接”对话框的底部。您可以稍后通过右键单击数据连接并选择“修改连接...”来访问此对话框。可用的高级选项因服务器类型而异。

如果您使用 SQL Server Management Studio 创建数据库,该数据库将在服务器实例中创建,因此,要部署您的应用程序,您必须备份数据库并将其部署到部署 SQL Server .或者,您可以使用使用 SQL Server Express(SQL Server 2012 中的 localDB)的数据文件,该文件将很容易与您的应用程序一起分发。

即如果它是 ASP.NET 应用程序,则有一个 App_Datafolder。如果您右键单击它,您可以添加一个新元素,它可以是 SQL Server 数据库。该文件将位于该文件夹中,可与 SQL Express 一起使用,并且易于部署。你需要在你的机器上安装 SQL Express / localDB 才能工作。

【讨论】:

我理解这种方式,并且喜欢它 :D 但您能否详细说明如何进行备份然后部署?我对 MS SQL Server 的了解很差,大约一个小时前我开始使用它:\ 有realsql服务器吗?你会使用sql server express吗? SQL Server Compact Edition 够用了吗?如果您不提供额外信息,我们将无法获得您可以使用的内容 我使用 MS SQl Server Management Studio 2008、MS SQL Management Studio 创建数据库。我使用查询来创建一些列。现在我希望用我的 C# 应用程序填充它 这个应用会被部署吗?你会在本地使用吗?您介意需要哪种服务器吗?我不需要知道您是如何创建数据库的,而是知道在哪里以及为什么。我猜不出你需要什么!!! 这对较新的 SSMS 仍然有效吗?我在我的 SSMS v18.1 中找不到这个。【参考方案2】:

获取连接字符串的一个非常简单的方法是创建一个文本文件,将扩展名从 .txt 更改为 .udl

双击 .udl 文件将打开 数据链接属性 向导。

配置并测试与您的数据库服务器的连接。

关闭向导并使用您选择的文本编辑器打开 .udl 文件,然后只需复制连接字符串(不带 Provider=<driver>part)即可在您的 C# 应用程序中使用它。

示例 udl 文件内容

[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=YOURDATABASENAME;Data Source=YOURSERVERNAME;Initial File Name="";Server SPN=""

您需要从中复制的内容

Integrated Security=SSPI;Initial Catalog=YOURDATABASENAME;Data Source=YOURSERVERNAME;

如果您想指定用户名和密码,您可以从其他答案中采用。

教程:https://teusje.wordpress.com/2012/02/21/how-to-test-an-sql-server-connection/

【讨论】:

如果这不起作用,有一些 reg 文件会更改注册表以启用/禁用 UDL 扩展。我通常在 Windows 文件夹中搜索 *.reg。 看看在web配置文件youtu.be/1WgO7CDSmu8生成和保存连接字符串 这是迄今为止最简单的答案。 凭据是否以纯文本形式从客户端传递到 sql sqlserver?如果是,有什么方法可以保护它? @variable 您可以在客户端和 SQL Server 之间使用configure TLS for connections。【参考方案3】:

如果您已经安装并设置了 MS SQL Server 和 Management Studio,请转到 Visual Studio(Visual Studio 不是 SQL Server Management Studio)。

1] 在 Visual Studio 中,转到 工具 -> 连接到数据库

2] 在服务器名称下选择您的数据库服务器名称(如果需要时间,让列表填充)。

3]在连接到数据库下,选择选择或输入数据库名称

4]从下拉列表中选择您的数据库。

5] 选择数据库后尝试测试连接。

6]如果测试连接成功,点击确定。

7] 在 Visual Studio 中,转到 View -> Server Explorer

8] 在 Server Explorer 窗口中,在 Data Connections 下选择您的数据库。 右键单击您的数据库 -> 单击属性

9]属性窗口中,您将看到您的连接字符串

【讨论】:

【参考方案4】:

打开 SQL Server Management Studio 并运行以下查询。你会得到连接字符串:

select
    'data source=' + @@servername +
    ';initial catalog=' + db_name() +
    case type_desc
        when 'WINDOWS_LOGIN' 
            then ';trusted_connection=true'
        else
            ';user id=' + suser_name() + ';password=<<YourPassword>>'
    end
    as ConnectionString
from sys.server_principals
where name = suser_name()

【讨论】:

应该是公认的答案,因为你得到了连接,而不仅仅是显示【参考方案5】:

在connectionstrings.com 上,您可以找到每个数据库提供程序的连接字符串。连接字符串由某些属性/属性及其值构成。对于 SQL Server 2008,它看起来像这样(标准,这是您在这里需要的):

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

myServerAddress 上,写下已安装实例的名称(对于 SQL Server Express 版本,默认为 .\SQLEXPRESS)。初始目录 = 您的数据库名称,连接后您将在左侧的 SSMS 中看到它。其余的不言自明。

编辑

您需要省略 Windows 身份验证的用户名和密码,并添加Integrated Security=SSPI

【讨论】:

凭据是否以纯文本形式从客户端传递到 sql sqlserver?如果是,有什么方法可以保护它?【参考方案6】:

我的解决方案是使用excel (2010)。

在新工作表中,选择一个单元格,然后:

Data -> From Other Sources -> From SQL Server 

输入服务器名称选择表

当您进入“导入数据”对话框时, 在“连接属性”对话框中单击属性, 选择“定义”选项卡。

Excel 可以很好地显示用于复制的连接字符串 (甚至导出连接文件...

【讨论】:

这工作完美,不需要在 VS 中设置连接。 哈哈,这是一个超级创意又有效的方法。我首先尝试它只是因为它不需要任何先决条件依赖项。谢谢。【参考方案7】:

如果使用 Linqpad 工具,在从连接中连接到目标数据库后,可以得到一个要使用的连接字符串。

    右键单击数据库连接。 选择Properties 选择Advanced 选择Copy Full Connection String to Clipboard

结果:Data Source=.\jabberwocky;Integrated Security=SSPI;Initial Catalog=Rasa;app=LINQPad


删除app=LinqPad取决于驱动程序和其他项目如Server而不是源,您可能需要调整驱动程序以适应目标操作;但它给了一个发射台。

【讨论】:

我同意这篇文章【参考方案8】:

在配置节点的 web.config 文件中放入下面的标签

 <connectionStrings>
<add name="NameOFConnectionString" connectionString="Data Source=Server;Initial Catalog=DatabaseName;User ID=User;Password=Pwd"
  providerName="System.Data.SqlClient" />

然后你可以使用上面的连接字符串,例如

SqlConnection con = new SqlConnection();
            con.ConnectionString = ConfigurationManager.ConnectionStrings["NameOFConnectionString"].ToString();

【讨论】:

【参考方案9】:

sql server database will be stored默认在以下路径

<drive>:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data\

,其中&lt;drive&gt; 是安装驱动器,X 是实例号(数据库引擎的第一个实例为 MSSQL.1)。为了提供连接字符串,您应该知道 sql server 数据库的服务器名称是什么,您存储的位置以及数据库服务器的实例。

服务器名一般为数据库所在机器的ip地址,默认实例为SqlExpress

connection string 包含数据源名称即服务器名称、初始目录即数据库名称、用户 ID即登录用户数据库的id,密码,即数据库的登录密码。

【讨论】:

如何获取连接字符串? 我查看了 Program files\Microsoft SQl Server,但我不知道我在寻找什么? 您无需查找数据库存储文件夹,请参阅我提供的连接字符串链接并编写您的连接字符串。【参考方案10】:

朋友们,最简单的方法是在 Visual Studio 2019(在我的情况下)上打开服务器资源管理器选项卡,然后尝试创建与数据库的连接。创建成功连接后,只需右键单击它并转到属性。在那里你会找到一个具有正确语法的字符串连接字段!...这对我有用,因为我事先知道我的服务器的名称....只是无法找出正确的语法来运行我的 ef 脚手架...

【讨论】:

【参考方案11】:

如果您在项目中创建了连接管理器,那么您可以简单地从那里拉出连接字符串。

String connection = this.dts.connections["<connection_manager_name>"];

并在以下位置使用此连接:

using (var conn = new SqlConnection(connection))

如果我错了,请纠正我。

【讨论】:

【参考方案12】:
SqlConnection con = new SqlConnection();
con.ConnectionString="Data Source=DOTNET-PC\\SQLEXPRESS;Initial Catalog=apptivator;Integrated Security=True";

【讨论】:

这如何回答 OP 问题?

以上是关于如何从数据库中获取连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

从连接字符串中获取用户名和密码的正确方法? [复制]

如何使用 ConfigurationManager 从 appsetting 中获取连接字符串?

如何在C#中获取连接字符串中指定的Mongo数据库

如何从一个表列中获取值,将它们与字符串连接并将它们插入另一个表中?

如何从 Startup.cs 的 InjectsAuthElements 方法中的配置中获取连接字符串

如何在运行时以编程方式从本地数据库获取连接字符串?时间:2019-06-01 标签:c#winforms