using System; namespace Common.Library.SQL.Base { public abstract class SQLBase : IDisposable { protected DBConnectionInformation DBConnectionInfo; public enum DBType { MSSQL, MYSQL } public struct DBConnectionInformation { public string DBHost {get;set;} public string DBName {get;set;} public string DBUserName {get;set;} public string DBPassword {get;set;} public DBType DBType {get;set;} public string GetConnectionString() { string rv = string.Empty; switch(DBType) { case DBType.MSSQL: break; case DBType.MYSQL: rv = string.Format("Server={0};Database={1};Uid={2};Pwd={3}", DBHost, DBName, DBUserName, DBPassword); break; } return rv; } } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { // free managed resources } // free native resources if there are any. } protected abstract void InitConnection(); protected abstract void DisposeConnection(); protected abstract int GetOrdinal(string columnName); protected abstract int? GetInt(int columnID); protected abstract int? GetInt(string columnName); protected abstract byte? GetByte(int columnID); protected abstract byte? GetByte(string columnName); protected abstract byte[] GetBytes(int columnID); protected abstract byte[] GetBytes(string columnName); protected abstract decimal? GetDecimal(int columnID); protected abstract decimal? GetDecimal(string columnName); protected abstract long? GetLong(int columnID); protected abstract long? GetLong(string columnName); protected abstract short? GetShort(int columnID); protected abstract short? GetShort(string columnName); protected abstract string GetString(int columnID); protected abstract string GetString(string columnName); protected abstract bool? GetBool(int columnID); protected abstract bool? GetBool(string columnName); protected abstract DateTime? GetDateTime(int columnID); protected abstract DateTime? GetDateTime(string columnName); } }