<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="connect_cbu" connectionString="Data Source=192.168.66.67; Initial Catalog=CBU; Persist Security Info=True; User ID=Admin;Password=1234"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
Допустим, я определил следующие две строки: public static string user;
и public static string pass;
внутри Global.cs
. Можно ли как-то включить их в connectionString
?
Пример:
connectionString="Data Source=192.168.66.67; Initial Catalog=CBU; Persist Security Info=True; User ID='Global.user';Password='Global.pass'"/>
Решение, основанное на ответе TheGeneral:
app.config
<connectionStrings>
<clear/>
<add name="connect_cbu" connectionString="Data Source=192.168.66.67; Initial Catalog=CBU; Persist Security Info=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
MainWindow.xaml.cs
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Windows;
namespace Test
{
public partial class MainWindow : Window
{
public MainWindow()
{
OpenConnection();
InitializeComponent();
}
public SqlConnection con = new SqlConnection();
public void OpenConnection()
{
try
{
con.ConnectionString = BuildConnectionString("Admin", "1234");
con.Open();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
MessageBoxResult result = MessageBox.Show(this, "Do you want to exit?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if (result != MessageBoxResult.Yes)
{
e.Cancel = true;
con.Close();
}
}
public static string BuildConnectionString(string userName, string userPassword)
{
ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["connect_cbu"];
if (null != settings)
{
string connectString = settings.ConnectionString;
Console.WriteLine("Original: {0}", connectString);
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString)
{
UserID = userName,
Password = userPassword
};
Console.WriteLine("Modified: {0}", builder.ConnectionString);
return builder.ToString();
}
else
{
MessageBox.Show("App.config is missing!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error);
return "fail";
}
}
}
}