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
- 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
- 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
- Create a text box and a button on a Windows Form. In the button's click event, use this code:
Collapse
Copy 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());
}
}
}