现在想做数据库的操作类,希望可以操作SQL Server、Oracle、SQLite等不同的数据库,C#对不同的数据库可以使用不同的对象,例如SqlConnection是针对SQL Server的(我是这样理解的)。
现在的想法是做一个接口,然后各个不同数据库的操作类实现该接口,这样做感觉代码重复很严重,因为大部分代码仅仅是对象类型不同而已。

解决方案 »

  1.   

    想法很好,不过你也太小看Microsoft了,看看System.Data.Common命名空间。
      

  2.   

    您的意思是说microsoft的sqlcommand等都是从System.Data.Common继承的,我只要在基类用System.Data.Common的东西实现相应操作就行?
      

  3.   

    System.Object
      System.MarshalByRefObject
        System.ComponentModel.Component
          System.Data.Common.DbConnection
            System.Data.Odbc.OdbcConnection
            System.Data.OleDb.OleDbConnection
            System.Data.SqlClient.SqlConnection
            System.Data.OracleClient.OracleConnection
    --------------------------------------------
    这是MSDN中的一个继承层次结构,你可以打开DbConnection看一下。
    其实,从Common也能看到,这些类就是通用于各种类型的数据库系统的。 
      

  4.   

    http://download.csdn.net/source/1255535考虑下~~