连接数据库时,针对不同的数据库使用不同的连接类,为了防止数据库变动引起程序较大改动所以定义了一个通用数据库连接类,在VB.Net中这么写:Public Class Db
    Private IdbConn As System.Data.IDbConnection                                                '到数据源的连接    ……    Public Function DataReader(ByVal sql As String) As System.Data.IDataReader
            Select Case ConnectionType
                Case DatabaseType.OleDb
                    Dim Cmd As New System.Data.OleDb.OleDbCommand(sql, IdbConn)
                    m_dr = Cmd.ExecuteReader()
                    Return m_dr
            End Select
    End Function
End Class可是C#中这么使用就提示:
    System.Data.OleDb.OleDbCommand Cmd = new System.Data.OleDb.OleDbCommand(Sql, IDbConn);    无法从“System.Data.IDbConnection”转换为“System.Data.OleDb.OleDbConnection”请问如何解决?

解决方案 »

  1.   

    public class Db 

     private System.Data.IDbConnection IdbConn;  public System.Data.IDataReader DataReader(string sql) 
     { 
       if (ConnectionType == DatabaseType.OleDb) { 
         System.Data.OleDb.OleDbCommand Cmd = new System.Data.OleDb.OleDbCommand(sql, IdbConn); 
         m_dr = Cmd.ExecuteReader(); 
         return m_dr; 
       } 
     } 
    }
      

  2.   

    Have a try!public System.Data.IDataReader DataReader(string sql)
    {
    if (ConnectionType == DatabaseType.OleDb) {
    System.Data.OleDb.OleDbCommand Cmd = new System.Data.OleDb.OleDbCommand(sql, IdbConn as OleDbConnection );
    m_dr = Cmd.ExecuteReader();
    return m_dr;
    }
    }
    }