나는 두 개의 서로 다른 데이터베이스를 처리 할 수있는 윈도우 CE 5.0에서 컴팩트 프레임 워크 3.5이 코드 조각을 쓰고 있어요 :도록 SqlConnection DBConnection 윈도우 CE
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlServerCe;
using System.Data.Common;
public myClass
{
private DbConnection dbCn;
private DbCommand dbCmd;
public void myClass(bool ce)
{
if (ce)
{
dbCn = new SqlCeConnection();
dbCmd = new SqlCeCommand();
}
else
{
dbCn = new SqlConnection(); // COMPILER ERROR Cannot implicitly convert type 'System.Data.SqlClient.SqlConnection' to 'System.Data.Common.DbConnection'
dbCmd = new SqlCommand();// COMPILER ERROR Cannot implicitly convert type 'System.Data.SqlClient.SqlCommand' to 'System.Data.Common.DbCommand'
}
}
이 DbXX에 SqlXX을 변환 할 수 없습니다 왜 ??? MSDN에서 SqlXX는 DbXX의 자식입니다! Btw, SqlCeXX에 문제 없습니다. cf에서 누락 된 DbPoviderfactory를 사용할 수 없습니다. 당신이 뭘 하려는지
감사
죄송합니다 이해가 안,도록 SqlConnection이 DbConnection에서 상속 왜 '수 t write : DbConnection dbCn = new SqlConnection() ??????? – Beorne
죄송합니다. 이제는 컴파일러가 올바른 객체가 무엇인지를 컴파일 타임에 알 수 없다는 것을 이해했습니다. desired 결과 (즉, DbPoviderfactory와 같은 것)를 얻기위한 아이디어가 있습니까? 감사. – Beorne
IDbConnection과 같은 인터페이스를 사용하는 것이 좋습니다. – Beorne