显示ConnectionString对话框

时间:2011-08-01 07:16:23

标签: c# sql sql-server connection-string

我正在尝试在C#中创建一个应该能够创建,备份和还原SQL Server数据库的程序。

为此,用户需要能够为所需的SQL Server(和数据库)设置连接字符串。

我想使用与Visual Studio相同的对话框来创建连接字符串。

这可能吗?

8 个答案:

答案 0 :(得分:25)

无法再下载链接到this answer的数据连接对话框组件。

然而,DataConnectionDialog组件(显然有所改变)已成为available on NuGet

安装:

通过NuGet包管理器控制台将组件添加到Visual Studio项目中:

 
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;
        }
    }
}

答案 1 :(得分:23)

  

注意:下面提到的对话框组件不再可供下载。除非您过去检索过它,否则您可能无法获得此答案的示例代码。

     

替代方案:现在有一个不同的DataConnectionDialog available on NuGet。有关详细信息,请参阅this answer


"Data Connection Dialog" on MSDN Archive Gallery (截至2015年9月1日已破损)

数据连接对话框是随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

答案 2 :(得分:4)

是和否。

是的,它是technically possible,但我劝你不要;该对话框是Visual Studio的一部分,并在“redist”中列出。我的解释是你 可以自由地重新发布这个dll。

答案 3 :(得分:2)

我认为这里的所有其他答案都已过时,但我在code.msdn.microsoft.com找到了当前的解决方案:

  

在运行时使用Microsoft Visual Studio连接对话框

     

在Visual Studio中,当开发人员想要为传统的TableAdapter或实体框架创建数据库表的强类型类时,在该过程中会有一个显示对话框的位置,如下所示。我将在运行时向您展示如何执行此操作。

下载是一个构建以下dll的解决方案:

  • Microsoft.Data.ConnectionUI.Dialog.dll

  • Microsoft.Data.ConnectionUI.dll

  • Microsoft.Data.DataConnectionConfiguration.dll

该解决方案还包含一个示例应用程序,展示了如何使用它们。 为我工作,这非常容易。

答案 4 :(得分:0)

答案 5 :(得分:0)

您可以使用SQLConnectionStringUI Nuget包。

答案 6 :(得分:0)

我创建了一些可以做到这一点的代码。该代码位于GitHub中,您可以在此处了解有关信息:https://csharpdeveloper.wordpress.com/2020/05/07/a-c-net-dialog-for-connecting-to-sql-server/ Lin

答案 7 :(得分:-1)

创建类似于“服务器资源管理器连接设置”窗口的自己的表单,并实现它。你不能使用那个用于VS的形式