连接数据库时,针对不同的数据库使用不同的连接类,为了防止数据库变动引起程序较大改动所以定义了一个通用数据库连接类,在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”请问如何解决?
{
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;
}
}
}
{
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;
}
}
}