Показать диалог ConnectionString - PullRequest
19 голосов
/ 01 августа 2011

Я пытаюсь создать программу на C #, которая должна иметь возможность создавать, резервировать и восстанавливать базу данных SQL Server.

Для этого пользователь должен иметь возможность настроить строку подключения к нужному серверу SQL (и базе данных).

Я хотел бы использовать тот же диалог, что и, например, Visual Studio для создания строки подключения.

Возможно ли это?

Ответы [ 7 ]

26 голосов
/ 01 сентября 2015

Компонент диалогового окна подключения к данным, связанный с этот ответ больше не доступен для загрузки.

Однако с тех пор (очевидно несколько измененный) 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;
        }
    }
}
23 голосов
/ 01 августа 2011

Примечание: Упомянутый ниже компонент диалога больше не доступен для загрузки. Если вы не получили его в прошлом, вы, вероятно, не получите пример кода этого ответа.

Альтернатива: Теперь доступна другая DataConnectionDialog NuGet . Подробнее см. в этом ответе .


«Диалог подключения данных» в Галерее архивов MSDN (не работает с 1 сентября 2015 г.)

Диалог подключения к данным является компонентом инструмента базы данных, выпущенным вместе с Visual Studio. Это позволяет пользователям создавать строки подключения и подключаться к конкретным источникам данных. попробуй это ..

C # Образец:

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

4 голосов
/ 01 августа 2011

Да и нет.

Да, это технически возможно , но я призываю вас не делать этого; этот диалог является частью Visual Studio и много перечислен в «redist». Моя интерпретация заключается в том, что вы не можете свободно распространять эту DLL.

2 голосов
/ 04 июня 2018

Я думаю, что все остальные ответы здесь устарели, но я нашел текущее решение по адресу code.msdn.microsoft.com :

Использование Microsoft VisualДиалог подключения студии во время выполнения

В Visual Studio, когда разработчик хочет создать строго типизированные классы для таблиц базы данных либо для обычной TableAdapter, либо для Entity Framework, в процессе есть место, где отображается диалоговое окно, как показанониже.Я покажу вам, как это сделать во время выполнения и немного подробнее.

Загрузка - это решение, которое создает следующие библиотеки:

  • Microsoft.Data.ConnectionUI.Dialog.dll

  • Microsoft.Data.ConnectionUI.dll

  • Microsoft.Data.DataConnectionConfiguration.dll

Решение также содержит пример приложения, показывающего, как их использовать.Я получил удовольствие, и это очень просто.

0 голосов
/ 15 октября 2015

Вы можете использовать SQLConnectionStringUI Пакет Nuget.

0 голосов
/ 01 августа 2011
0 голосов
/ 01 августа 2011

Создайте собственную форму, аналогичную окну «Настройка соединения обозревателя сервера», и внедрите ееВы не можете использовать эту форму, предназначенную для VS

...