【问题标题】: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 可以获取它?那我可以直接拉那里的连接字符串吗?

【问题讨论】:

标签: c# sql-server visual-studio


【解决方案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】:

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

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

    Data -> From Other Sources -> From SQL Server 
    

    输入服务器名称选择表

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

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

    【讨论】:

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

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

    1. 右键单击数据库连接。
    2. 选择Properties
    3. 选择Advanced
    4. 选择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 问题?
          猜你喜欢
          • 1970-01-01
          • 2019-01-27
          • 1970-01-01
          • 2012-05-20
          • 1970-01-01
          • 1970-01-01
          • 2017-05-11
          • 2019-04-23
          • 1970-01-01
          相关资源
          最近更新 更多