namespace DSFactory { public class DSFactory : DSFactoryBase { public DataSet GetDataSet(string sQuery) { DataSet oDataSet = new DataSet(); IDbConnection oConnection = _GetConnection(); IDbDataAdapter oAdapter = _GetDataAdapter(sQuery); oAdapter.Fill(oDataSet); return oDataSet; } } public class DSFactoryBase { // Define exposed members public bool bTrustedConnection = false; public string sDatabase = ""; public string sPassword = ""; public string sServer = ""; public string sUserName = ""; public string sConnString = ""; int iConnectionType = 1; protected IDbConnection _GetConnection() { IDbConnection oConnection = null; switch (iConnectionType) { // Sql Data Provider case 1: oConnection = new SqlConnection(sConnString); break; // OleDb Data Provider case 2: oConnection = new OleDbConnection(sConnString); break; // ODBC Data Provider case 3: oConnection = new OdbcConnection(sConnString); break; default: break; } return oConnection; } protected IDbDataAdapter _GetDataAdapter(string sQuery) { IDbDataAdapter oAdapter = null; switch (iConnectionType) { // Sql Data Provider case 1: oAdapter = new SqlDataAdapter(sQuery, sConnString); break; // OleDb Data Provider case 2: oAdapter = new OleDbDataAdapter(sQuery, sConnString); break; // ODBC Data Provider case 3: oAdapter = new OdbcDataAdapter(sQuery, sConnString); break; default: break; } return oAdapter; } } }