Подтвердить что ты не робот

Отобразить диалог ConnectionString

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

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

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

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

4b9b3361

Ответ 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.

Ответ 6

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