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

how to programmatically get connection string from local database at run time? c# winforms

我已经使用 Winforms (c#) 以编程方式创建了一个本地数据库,并向其中添加了表和存储过程,并存储在用户的首选位置。现在,我只想让我的 Winforms 应用程序访问它而无需打开 visual studio 或 SSMS 来获取该数据库的连接字符串。

我的尝试: 我确实打开了 visual studio 以获取数据库的连接字符串以将其添加到 WinForms 应用程序的连接字符串,我想用它进行交易。

有没有办法以编程方式从 Winforms 应用程序中检索用户选择的数据库的连接字符串?

喜欢,

  1. 用户从他的 WinForms 应用中选择已经创建的 localdatabase.mdf 的位置。
  2. 应用程序检索连接字符串,以便他可以使用它连接到数据库。

检索可以包括仅检索数据库的 Data Source 等部分。我可以设法用它来构建连接字符串。就像使用 Initial Catalog 的文件名并使用字符串添加 Integrated security

关于此的任何想法都会很有帮助。谢谢大家。

您可以使用 SqlConnectionStringBuilder Class.

获取和编辑连接字符串

这里的连接字符串是方法的本地连接字符串,但在下面的方法范围内的任何地方。

public static void ChangeConnectionStringFromExisting()
{

    var connectionString = "Server=localhost;Integrated security=SSPI;database=master";

    var builder = new SqlConnectionStringBuilder(connectionString);

    builder.DataSource = "(LocalDB)\MSSQLLocalDB";
    builder.InitialCatalog = "MyAppDatabase.mdf";

    connectionString = builder.ConnectionString;

    using (var cn = new SqlConnection(connectionString))
    {
        // . . .
    }

}