日期:2014-05-18 浏览次数:20591 次
    public sealed class odbHelper
    {
    public static OleDbDataReader ExecuteDataReader(string ASqlStr)
        {
            OleDbConnection cn = new OleDbConnection(cnStr);
            cn.Open();
            OleDbDataReader dr = null;
            try
            {
                OleDbCommand cmd = new OleDbCommand(ASqlStr, cn);
                dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return dr;
            }
            catch (OleDbException ex)
            {
                EventLog.WriteEntry(EventLogSource, ex.Message + " " + ASqlStr);
                throw new Exception("SQL错误: " + ex.Message);
            }
            //finally
            //{
            //    cn.Close();
            //}
        }
      }
    public sealed class mydbHelper
    {
        public OleDbDataReader dr;
        
        public mydbHelper(){
        }
    }
        mydbHelper mydb = new mydbHelper();
        mydb.dr=odbHelper.ExecuteDataReader(sql);
    public abstract class TestDataProviderBase
    {
        public abstract string GetTestName();
        public static TestDataProviderBase Instance()
        {
            //这里应该从配置文件读数据,利用反射实例化当前提供者(单件)
            return null;
        }
    };
    public class OleTestDataProviderBase:TestDataProviderBase
    {
        public override string GetTestName()
        {
            return "Access";
        }
    }
    public class SqlTestDataProviderBase:TestDataProviderBase
    {
        public override string GetTestName()
        {
            return "Sql";
        }
    }
    public class InvokeDemo
    {
        public void Test()
        {
            string str = TestDataProviderBase.Instance().GetTestName();
        }
    };
------解决方案--------------------
有现成的...
Microsoft Enterprise Library 之 Microsoft.Practices.EnterpriseLibrary.Data
你把它的代码全看懂了就成高手了...
------解决方案--------------------
建议学习参考 petshop4.0中关于数据库部分的设计 。正好满足LZ的需求 。
------解决方案--------------------
olu.desktopit.net 这里是一个用户在线模块,功能比较简单,就是用这种思路实现的,有全部的c#源码可下,你可以去看看
------解决方案--------------------
理由抽象工程 加上 反射来实现
petshop cs .text 都是 看一下源码就知道了 其实简单点说就说用借口来编程
------解决方案--------------------
接口或抽象类,低层封装,外层只管获得数据数
这个应该是基本的OO吧
------解决方案--------------------
接口或抽象类,低层封装,外层只管获得数据数