如何从数据库中获取连接字符串
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\
,其中<drive>
是安装驱动器,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 中获取连接字符串?
如何从一个表列中获取值,将它们与字符串连接并将它们插入另一个表中?