如何以编程方式在 运行 时间从本地数据库获取连接字符串?时间: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 应用程序中检索用户选择的数据库的连接字符串?
喜欢,
- 用户从他的 WinForms 应用中选择已经创建的 localdatabase.mdf 的位置。
- 应用程序检索连接字符串,以便他可以使用它连接到数据库。
检索可以包括仅检索数据库的 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))
{
// . . .
}
}
我已经使用 Winforms (c#) 以编程方式创建了一个本地数据库,并向其中添加了表和存储过程,并存储在用户的首选位置。现在,我只想让我的 Winforms 应用程序访问它而无需打开 visual studio 或 SSMS 来获取该数据库的连接字符串。
我的尝试: 我确实打开了 visual studio 以获取数据库的连接字符串以将其添加到 WinForms 应用程序的连接字符串,我想用它进行交易。
有没有办法以编程方式从 Winforms 应用程序中检索用户选择的数据库的连接字符串?
喜欢,
- 用户从他的 WinForms 应用中选择已经创建的 localdatabase.mdf 的位置。
- 应用程序检索连接字符串,以便他可以使用它连接到数据库。
检索可以包括仅检索数据库的 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))
{
// . . .
}
}