Я пишу этот кусок кода в Compact Framework 3.5 под Windows CE 5.0 для обработки двух различных баз данных:SqlConnection DBConnection WindowsCE
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'
}
}
Почему он не может преобразовать SqlXX в DbXX ??? из MSDN SqlXX - это дети DbXX! Btw, никаких проблем с SqlCeXX. Я не могу использовать DbPoviderfactory, которого нет в cf.
Благодаря
К сожалению, я не понимаю, SqlConnection наследует от DbConnection, почему я могу» t написать: DbConnection dbCn = new SqlConnection() ??????? – Beorne
Извините, теперь я понял, проблема в том, что компилятор не знает во время компиляции, что такое правильный объект. Некоторая идея получить желаемый результат (т. Е. Что-то вроде DbPoviderfactory)? Благодарю. – Beorne
Хорошо, используя интерфейсы, такие как IDbConnection. – Beorne