| 12345678910111213141516171819202122232425262728293031323334353637383940 | using System;using System.Data.Common;namespace LJLib.DAL.SQL{    internal interface ISqlEngine    {        DateTime GetServerTime(DbCommand cmd);        void AddWithValue(object cmd, string name, object value);    }    internal abstract class SqlEngine<T> : ISqlEngine where T : DbCommand    {        public DateTime GetServerTime(DbCommand cmd)        {            var cmdinternal = cmd as T;            if (cmdinternal == null)            {                throw  new Exception(string.Format("数据库引擎{0}与{1}不兼容", this.GetType().FullName, typeof(T).FullName));            }            return GetServerTimeInternal(cmdinternal);        }        protected abstract DateTime GetServerTimeInternal(T cmd);        public void AddWithValue(object cmd, string name, object value)        {            var cmdinternal = cmd as T;            if (cmdinternal == null)            {                throw new Exception(string.Format("数据库引擎{0}与{1}不兼容", this.GetType().FullName, typeof(T).FullName));            }            AddWithValueInternal(cmdinternal, name, value);        }        protected abstract void AddWithValueInternal(T cmd, string name, object value);    }}
 |