Однако, если создать контрол PropertyGrid и назначить ему источником объект ConnectionStringBuilder любого нужного нам провайдера, то мы получим довольно таки удобный способ настройки строки подключения.
Выглядит примерно так:
Понимаю, что "родного", т.е. от майкрософт контрола PropertyGrid нет, но его ведь все равно можно использовать, либо использовать аналог (я видел в интернете такие). Т.о. был бы единый подход настройки строки подключения, т.к. выбрав из списка нужного провайдера, происходит автоматическое отображение доступных свойств именно этого провайдера. Я не пытаюсь умничать, просто имхо так было бы более удобно, чем вручную набирать строку подключения.
Код, по последнему скрину:
Код: Выделить всё
public partial class Form1 : Form
{
DataTable table = DbProviderFactories.GetFactoryClasses();
DbConnectionStringBuilder cnnBuild;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (DataRow row in table.Rows)
{
cboProviders.Items.Add(row[0]);
}
cboProviders.SelectedIndex = -1;
}
private void cboProviders_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (DataRow row in table.Rows)
{
if (row[0] == cboProviders.SelectedItem.ToString())
{
DbProviderFactory factory = DbProviderFactories.GetFactory(row);
cnnBuild = factory.CreateConnectionStringBuilder();
propertyGrid1.SelectedObject = cnnBuild;
break;
}
propertyGrid1.SelectedObject = null;
}
}
}