0

我想知道如何将 DATA LINK 表单添加到我的 WIN 应用程序中。您知道用户可以在哪些表单上选择他们要连接的女巫 SQL 服务器,以及他们要使用什么类型的安全性以及在什么数据库上。

这张图片上的 替代文字 http://img186.imageshack.us/img186/7259/datalink.png

4

3 回答 3

2

您可以通过一些 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
于 2009-04-10T06:24:28.163 回答
1

更多关于这里

于 2009-04-10T06:29:08.557 回答
1

我认为最好的选择是在这里使用微软提供的代码:http: //code.msdn.microsoft.com/Connection

它是 Visual Studio 中使用的连接对话框。

但是,它仅适用于已注册的 ADO.NET 提供程序。

于 2010-06-01T22:31:11.983 回答