我正在尝试使用C#创建一个程序,该程序能够创建、备份和恢复SQL Server数据库。
为了实现这一目标,用户需要能够设置所需SQL Server(和数据库)的连接字符串。
我希望使用与Visual Studio创建连接字符串相同的对话框。
这是否可行?
我正在尝试使用C#创建一个程序,该程序能够创建、备份和恢复SQL Server数据库。
为了实现这一目标,用户需要能够设置所需SQL Server(和数据库)的连接字符串。
我希望使用与Visual Studio创建连接字符串相同的对话框。
这是否可行?
与此答案中链接的数据连接对话框组件不再提供下载。
然而,一个(显然有些修改过的)DataConnectionDialog
组件已经在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;
}
}
}
注意:下面提到的对话框组件已经不再提供下载。除非您以前检索过它,否则您可能无法使本答案中的示例代码工作。
替代方案:现在在NuGet上有一个不同的
DataConnectionDialog
可用。详情请参见此答案。
MSDN存档库中的“数据连接对话框”(从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);
}
这里还提供了源代码。根据许可证,我们可以将源代码集成和重新分发到我们的应用程序中。
DataConnectionConfiguration
类,并使用项目中的几个内置调用来加载对话框:DataConnectionDialog dcd = new DataConnectionDialog();
Microsoft.Data.ConnectionUI.DataSource.AddStandardDataSources(dcd);
dcd.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.SqlDataSource;
dcd.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.SqlDataProvider;
DataConnectionDialog.Show(dcd);
- nekno在运行时使用Microsoft Visual Studio连接对话框
在Visual Studio中,当开发人员想要为数据库表创建强类型类,无论是用于传统的
TableAdapter
还是Entity Framework,在此过程中都会显示一个对话框,如下所示。我将向您展示如何在运行时执行此操作。
下载的内容是一个解决方案,它会生成以下dll:
Microsoft.Data.ConnectionUI.Dialog.dll
Microsoft.Data.ConnectionUI.dll
Microsoft.Data.DataConnectionConfiguration.dll
该解决方案还包含一个演示应用程序,展示了如何使用它们。 对我很有用,而且非常容易。
可以和不可以。
技术上是可能的,但我建议您不要这样做;那个对话框是Visual Studio的一部分,而且没有列在“redist”中。我的理解是你不能自由地重新分发这个dll。
我创建了一些代码来完成这个任务。该代码位于 GitHub 上,您可以在此处了解相关信息:https://csharpdeveloper.wordpress.com/2020/05/07/a-c-net-dialog-for-connecting-to-sql-server/Lin
创建类似于“服务器资源管理器连接设置”窗口的自定义表单,并实现它。您不能使用专为VS设计的该表单。