Display a ConnectionString dialog

一世执手 提交于 2020-01-09 09:05:01

问题


I'm trying to create a program in C# that should be able to create, backup and restore a SQL Server database.

For this, the user needs to be able to setup a connection string to the desired SQL Server (and database).

I would like to use the same dialog as for example Visual Studio for creating the connection string.

Is this possible?


回答1:


Note: The dialog component referred to below is no longer available for download. Unless you have retrieved it in the past, you will probably not get this answer's sample code to work.

Alternative: There is now a different DataConnectionDialog available on NuGet. See this answer for details.


"Data Connection Dialog" on MSDN Archive Gallery (broken as of 1 Sept. 2015)

The data connection dialog is a database tool component released with Visual Studio. It allows users to build connection strings and to connect to specific data sources. try this..

C# Sample:

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

Here source code also available. we can integrate and redistribute the source code with our application according to license.




回答2:


The data connection dialog component linked to in this answer is no longer available for download.

However, a (apparently somewhat altered) DataConnectionDialog component has since become available on NuGet.

Installation:

Add the component to your Visual Studio project via the NuGet package manager console:

Install-Package DataConnectionDialog

Usage example:

// 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:


Yes and no.

Yes, it is technically possible, but I urge you not to; that dialog is part of Visual Studio and is lot listed in "redist". My interpretation is that you are not free to redistribute this dll.




回答4:


I think all the other answers here are out-of-date, but I found a current solution at code.msdn.microsoft.com:

Using Microsoft Visual Studio Connection Dialog at runtime

In Visual Studio when a developer wants to create strong typed classes for database tables either for the conventional TableAdapter or Entity Framework there is a place in the process where a dialog is displayed as shown below. I will show you how to do this at runtime and a bit more.

The download is a solution that builds the following dlls:

  • Microsoft.Data.ConnectionUI.Dialog.dll

  • Microsoft.Data.ConnectionUI.dll

  • Microsoft.Data.DataConnectionConfiguration.dll

The solution also contains a sample application showing how to use them. Worked a treat for me and it is super easy.




回答5:


You can use UDL file.

Configuring Data Controls to Use Universal Data Link (.udl) Files




回答6:


You can use SQLConnectionStringUI Nuget package.




回答7:


Create your own form similar to Server Explorer Connection Setting window, and implement it. You cannot use that form meant for VS



来源:https://stackoverflow.com/questions/6895251/display-a-connectionstring-dialog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!