Отобразить диалог ConnectionString
Я пытаюсь создать программу на С#, которая должна иметь возможность создавать, создавать резервные копии и восстанавливать базу данных SQL Server.
Для этого пользователь должен иметь возможность настроить строку подключения на требуемый SQL Server (и базу данных).
Я хотел бы использовать тот же диалог, что и Visual Studio для создания строки подключения.
Возможно ли это?
Ответы
Ответ 1
Примечание. Компонент диалога, упомянутый ниже, больше не доступен для загрузки. Если вы не получили его в прошлом, вы, вероятно, не получите этот пример кода ответа.
Альтернатива: Теперь существует другой DataConnectionDialog
, доступный на NuGet. Подробнее см. этот ответ.
"Диалоговое окно подключения к данным" в галерее архивов MSDN (с разбивкой по состоянию на 1 сентября 2015 г.)
Диалоговое окно подключения данных - компонент инструмента базы данных, выпущенный с помощью Visual Studio. Это позволяет пользователям создавать строки подключения и подключаться к определенным источникам данных. попробуйте это.
Пример С#:
static void Main(string[] args)
{
DataConnectionDialog dcd = new DataConnectionDialog();
DataConnectionConfiguration dcs = new DataConnectionConfiguration(null);
dcs.LoadConfiguration(dcd);
if (DataConnectionDialog.Show(dcd) == DialogResult.OK)
{
// load tables
using (SqlConnection connection = new SqlConnection(dcd.ConnectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM sys.Tables", connection);
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.HasRows);
}
}
}
}
dcs.SaveConfiguration(dcd);
}
Здесь также доступен исходный код. мы можем интегрировать и распространять исходный код с нашим приложением в соответствии с лицензией.
![enter image description here]()
Ответ 2
Компонент диалога подключения к данным, связанный с этим ответом, больше не доступен для загрузки.
Однако, (видимо, несколько измененный) компонент DataConnectionDialog
с тех пор стал доступным в NuGet.
Установка:
Добавьте компонент в проект Visual Studio через консоль диспетчера пакетов NuGet:
Install-Package DataConnectionDialog
Пример использования:
// using Microsoft.Data.ConnectionUI;
// using System.Windows.Forms;
bool TryGetDataConnectionStringFromUser(out string outConnectionString)
{
using (var dialog = new DataConnectionDialog())
{
// If you want the user to select from any of the available data sources, do this:
DataSource.AddStandardDataSources(dialog);
// OR, if you want only certain data sources to be available
// (e.g. only SQL Server), do something like this instead:
dialog.DataSources.Add(DataSource.SqlDataSource);
dialog.DataSources.Add(DataSource.SqlFileDataSource);
…
// The way how you show the dialog is somewhat unorthodox; `dialog.ShowDialog()`
// would throw a `NotSupportedException`. Do it this way instead:
DialogResult userChoice = DataConnectionDialog.Show(dialog);
// Return the resulting connection string if a connection was selected:
if (userChoice == DialogResult.OK)
{
outConnectionString = dialog.ConnectionString;
return true;
}
else
{
outConnectionString = null;
return false;
}
}
}
Ответ 3
Да и нет.
Да, это технически возможно, но я не призываю вас этого делать; этот диалог является частью Visual Studio и много указан в "redist". Моя интерпретация заключается в том, что вы не можете перераспределять эту DLL.
Ответ 4
Вы можете использовать файл UDL.
Настройка элементов управления данными для использования файлов универсальной передачи данных (.udl)
Ответ 5
Вы можете использовать SQLConnectionStringUI пакет Nuget.
Ответ 6
Создайте свою собственную форму, аналогичную окну Connection Explorer Connection Setting, и реализуйте ее. Вы не можете использовать эту форму, предназначенную для VS