Click here to Skip to main content
11,412,526 members (70,287 online)
Click here to Skip to main content

Using DataLinks to get or edit a connection string

, 9 Mar 2004
Rate this:
Please Sign up or sign in to vote.
Accessing DataLinks from a .NET program to get or edit a connection string.

Sample Image - DataLinks.gif

Introduction

A similar article was written on this subject but this article deals with accessing DataLinks from a .NET program to get or edit a connection string. Your project must reference DataLinks and ADODB, then execute the PromptNew or PromptEdit methods.

Step by step procedure

  1. Reference ADODB in your project. This is required to read the COM object passed back from DataLinks. This file is located here: c:\Program Files\Microsoft.NET\Primary Interop Assemblies\adodb.dll
  2. Reference DataLinks in your project. DataLinks used to be MSDASC.dll, but has changed to OLEDB32.DLL (see KB). This file is located here: C:\Program Files\Common Files\System\Ole DB\OLEDB32.DLL
  3. Create a text box and a button on a Windows Form. In the button's click event, use this code:
private void ButtonGetConnectionString_Click(object sender, 
  System.EventArgs e)
{
   /* 
        Reference DataLinks
        NOTE: Reference 
              C:\Program Files\Common Files\System\Ole DB\OLEDB32.DLL
              (Was MSDASC.dll) 
        SEE:
           http://support.microsoft.com:80/support/kb/articles/Q225/1/32.asp
   */
      MSDASC.DataLinks dataLinks = new MSDASC.DataLinksClass();
      //note that a reference to: 
      //  c:\Program Files\Microsoft.NET\Primary Interop Assemblies\adodb.dll
      //is also required to read the ADODB._Connection result
      ADODB._Connection connection;                         
      //are we editing an existing connect string or getting a new one?
      if(this.txtConnectionString.Text==String.Empty)
      {     
            // get a new connection string
            try   
            {           
               //Prompt user for new connect string
               connection = (ADODB._Connection)dataLinks.PromptNew();
               //read result
               this.txtConnectionString.Text=
                    connection.ConnectionString.ToString();
            }
            catch(Exception ex)     
            {
                  MessageBox.Show(ex.ToString());     
            }
      }
      else
      {     
            // edit connection string
            connection=new ADODB.ConnectionClass();
            connection.ConnectionString=this.txtConnectionString.Text;
            //set local COM compatible data type
            object oConnection=connection;
            try   
            {     
                  //prompt user to edit the given connect string
                  if((bool)dataLinks.PromptEdit(ref oConnection))
                  {
                        this.txtConnectionString.Text=
                             connection.ConnectionString;
                  }
            }
            catch(Exception ex)
            {
                  MessageBox.Show(ex.ToString());     
            }
      }
}

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

DanMayer
Web Developer
United States United States
No Biography provided

Comments and Discussions

 
Question64 / 32 bit drivers? Pin
richardbrigzy at 21-Sep-12 16:02
memberrichardbrigzy21-Sep-12 16:02 
AnswerRe: 64 / 32 bit drivers? Pin
jonpetitta at 18-Aug-14 10:08
memberjonpetitta18-Aug-14 10:08 
GeneralProblem with the waitcursor Pin
PrimozPayton at 25-Aug-08 3:44
memberPrimozPayton25-Aug-08 3:44 
GeneralSqlClient Issue with Provider Property Pin
Brady Kelly at 29-Jul-07 0:07
memberBrady Kelly29-Jul-07 0:07 
GeneralNo need for interop Pin
Sergey Prokhorenko at 25-Jun-07 0:38
memberSergey Prokhorenko25-Jun-07 0:38 
GeneralRe: No need for interop Pin
Sergey Prokhorenko at 25-Jun-07 0:42
memberSergey Prokhorenko25-Jun-07 0:42 
GeneralRe: No need for interop Pin
Brady Kelly at 28-Jul-07 23:58
memberBrady Kelly28-Jul-07 23:58 
GeneralRe: No need for interop Pin
Member 8714421 at 20-Nov-13 5:10
memberMember 871442120-Nov-13 5:10 
GeneralSpeed Pin
akorolev10 at 3-Oct-04 1:24
memberakorolev103-Oct-04 1:24 
GeneralGreat! Give me exact what I am looking for Pin
zhoulhh at 1-Jul-04 8:39
memberzhoulhh1-Jul-04 8:39 
GeneralPromptEdit(ref connectionString) Pin
UnderEducated at 10-Mar-04 11:33
memberUnderEducated10-Mar-04 11:33 
What am I missing? It is my understanding that PromptEdit takes an object reference to and ADODB Connection, not an object reference to a string?

The downloaded code fails with: "Connection object is not valid. No such interface supported." because of this.

It would be nice if it worked, using the ADODB.Connection the end user must specify the "Allow saving password" to get the connection.ConnectionString property to return the password. If a string would work like this the user wouldn't have to check the box? Poke tongue | ;-P
GeneralRe: PromptEdit(ref connectionString) Pin
DanMayer at 10-Mar-04 11:55
memberDanMayer10-Mar-04 11:55 
GeneralRe: PromptEdit(ref connectionString) Pin
UnderEducated at 10-Mar-04 13:03
memberUnderEducated10-Mar-04 13:03 
GeneralRe: PromptEdit(ref connectionString) [modified] Pin
mlgray at 4-Jul-06 0:06
membermlgray4-Jul-06 0:06 
GeneralRe: PromptEdit(ref connectionString) Pin
yetty2000 at 26-Oct-07 7:10
memberyetty200026-Oct-07 7:10 
GeneralRe: Very Slow... Pin
VHsu at 13-Feb-04 20:41
memberVHsu13-Feb-04 20:41 
GeneralRe: Very Slow... Pin
DanMayer at 14-Feb-04 7:45
memberDanMayer14-Feb-04 7:45 
GeneralRe: Very Slow... Pin
mgarins at 19-Feb-04 5:20
sussmgarins19-Feb-04 5:20 
GeneralRe: Very Slow... Pin
Ricardo Casquete at 18-Feb-06 0:55
memberRicardo Casquete18-Feb-06 0:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150427.1 | Last Updated 10 Mar 2004
Article Copyright 2004 by DanMayer
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid