我想知道如何将 DATA LINK 表单添加到我的 WIN 应用程序中。您知道用户可以在哪些表单上选择他们要连接的女巫 SQL 服务器,以及他们要使用什么类型的安全性以及在什么数据库上。
这张图片上的 替代文字 http://img186.imageshack.us/img186/7259/datalink.png
我想知道如何将 DATA LINK 表单添加到我的 WIN 应用程序中。您知道用户可以在哪些表单上选择他们要连接的女巫 SQL 服务器,以及他们要使用什么类型的安全性以及在什么数据库上。
这张图片上的 替代文字 http://img186.imageshack.us/img186/7259/datalink.png
您可以通过一些 COM Introp 来做到这一点......但是您必须将一堆 Interop 程序集拉入您的项目中,这可能是一个拖累。此代码将改为使用反射显示对话框。
public static string ShowDialog( IWin32Window owner,
string connectionString )
{
Type dlType = Type.GetTypeFromProgID( "DataLinks", true );
Type acType = Type.GetTypeFromProgID( "ADODB.Connection", true );
object form = Activator.CreateInstance( dlType );
object connection = Activator.CreateInstance( acType );
acType.InvokeMember(
"ConnectionString",
BindingFlags.Public | BindingFlags.SetProperty,
null,
connection,
new object[]{ connectionString }
);
object result =
dlType.InvokeMember(
"PromptEdit",
BindingFlags.Public | BindingFlags.InvokeMethod,
null,
form,
new object[]{ connection }
);
if( result != null && (bool)result )
return acType.InvokeMember(
"ConnectionString",
BindingFlags.Public | BindingFlags.GetProperty,
null,
connection,
new object[]{} ) as string;
return null;
}
这基本上转换为以下 VB 脚本
form = GetObject( "DataLinks" )
connection = GetOBject( "ADODB.Connection" )
connection.ConnectionString = "existing connection"
form.PromptEdit( connection )
Return connection.ConnectionString
更多关于这里。
我认为最好的选择是在这里使用微软提供的代码:http: //code.msdn.microsoft.com/Connection。
它是 Visual Studio 中使用的连接对话框。
但是,它仅适用于已注册的 ADO.NET 提供程序。