.net C#中的SqlConnectionStringBuilder表单

时间:2009-04-10 06:14:54

标签: c# .net sql database-connection

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

就像这张照片上的东西 alt text http://img186.imageshack.us/img186/7259/datalink.png

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

有关here的更多信息。

答案 2 :(得分:1)

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

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

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