Luis said:
Hi,
In my app, I need to allow to end user to choose the conection parameters
for a SQL Database or Access database, then I need to show the same OLE DB
conection dialog used by Microsoft.
Step by step procedure (from
http://www.codeproject.com/cs/database/DataLinks.asp)
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());
}
}
}