Kevin,
Basically, you'd program to the IDb Interfaces. So your GetConnection() method would actually return an IDbConnection (rather than a SqlConnection):
public virtual IDbConnection GetConnection() // or abstract instead of virtual, either way is ok
{
}
Likewise for getting the Command (IDbCommand), the DataAdapter (IDbDataAdapter), etc.etc.etc.
Your sub-classes then plug in the proper objects:
public override IDbConnection GetConnection()
{
string sConnString = _GetConnString();
SqlConnection oConn = new SqlConnection();
return oConn;
}
~~Bonnie
>I have the following code which returns a SQL Connection object:
>
>
>public SqlConnection GetConnection()
>{
> // Get the connection string
> string sConnString = _GetConnString();
>
> // Create a connection and assign the connection string to it
> SqlConnection oConn = new SqlConnection();
> oConn.ConnectionString = sConnString;
>
> // Try to open the connection
> try
> {
> oConn.Open();
> }
> catch (SqlException e)
> {
> }
>
>
> // Test the connection and if the connection was opened, return the connection
> // otherwise return null
> if (oConn.State == ConnectionState.Open)
> {
> // Return the connection
> return oConn;
> }
> else
> {
> return null;
> }
>
>}
>
>
>
>I anticipate having to connect to other DB's, so I would like to create an abstract base
>class that has the GetConnection method, as well as other data methods. It will also
>have connection string and other DB related properties on it. Then, all I have to do is
>subclass it and modify it where needed.
>
>I'm not sure how to write a base class for this. Can anyone help out a newby?
>
>Thanks