Мне нужно получить данные для моих моделей из Pervasive SQL в виде наблюдаемых коллекций.Я хочу метод, который я могу реализовать в любом случае, поэтому я хочу передать свой класс модели в качестве параметра
public static ObservableCollection<???MyClass???> GetBackObservableCollection(string sqlcomm, int timeout, params object[] parameters)
{
ObservableCollection<???MyClass???> ocData = new ObservableCollection<???MyClass???> ();
PsqlConnection dbConn = new PsqlConnection(PervasiveConnectionString);
if (dbConn.State != ConnectionState.Open)
{
dbConn.Open();
}
PsqlCommand pSQLComm = new PsqlCommand(sqlcomm, dbConn);
pSQLComm.CommandTimeout = timeout;
for (int i = 0; i < parameters.Length; i++)
{
Type paramType= parameters[i].GetType();
string paramTypeStr = Convert.ToString(paramType);
if (paramTypeStr== "System.String")
{
string p = "p" + i;
PsqlParameter par = new PsqlParameter(p, PsqlDbType.Char);
par.Value = parameters[i];
pSQLComm.Parameters.Add(par);
}
else if (paramTypeStr== "System.Int32")
{
string p = "p" + i;
PsqlParameter par = new PsqlParameter(p, PsqlDbType.Integer);
par.Value = parameters[i];
pSQLComm.Parameters.Add(par);
}
else if (paramTypeStr== "System.Double")
{
string p = "p" + i;
PsqlParameter par = new PsqlParameter(p, PsqlDbType.Double);
par.Value = parameters[i];
pSQLComm.Parameters.Add(par);
}
}
using (PsqlDataReader dr = pSQLComm.ExecuteReader())
{
while (dr.Read())
{
//WHAT TO PUT IN HERE
}
}
return ocData;
}
Что мне нужно для передачи класса в качестве параметра - я написал здесь как ??? MyClass???.Это будет отличаться для разных моделей.Другое дело, как передать его в
using (PsqlDataReader dr = pSQLComm.ExecuteReader())
{
while (dr.Read())
{
//WHAT TO PUT IN HERE
}
}
, чтобы получить данные из sql в мои объекты класса.
Кто-нибудь может помочь с этим?