Web service
Hola:
Tengo una aplicación de windows que se comunica con un web service para conectarse y desconectarse a la base de datos. Lo que quiero hacer es poner en ese web service otros 2 métodos para ejecutar las consultas:
-El primero ejecutaría las update, insert y delete:
public void ejecutarUpdate(string sql)
{
command=new OleDbCommand(sql, conec);
command.ExecuteNonQuery();
}
Y no da ningún problema.
El segundo debería ejecutar las select y devolver el OleDbDataReader para que el programa pueda trabajar con el resultado de la select, y ahí viene el problema:
public OleDbDataReader ejecutarSelect(string sql)
{
OleDbDataReader retorno;
command=new OleDbCommand(sql, conec);
retorno=command.ExecuteReader();
return retorno;
}
Me da el siguiente error:
System.Data.OleDb.OleDbDataReader cannot be serialized because it does not have a default public constructor.
¿qué debo hacer para poder devolver el dataReader resultante de la select?
Gracias
Tengo una aplicación de windows que se comunica con un web service para conectarse y desconectarse a la base de datos. Lo que quiero hacer es poner en ese web service otros 2 métodos para ejecutar las consultas:
-El primero ejecutaría las update, insert y delete:
public void ejecutarUpdate(string sql)
{
command=new OleDbCommand(sql, conec);
command.ExecuteNonQuery();
}
Y no da ningún problema.
El segundo debería ejecutar las select y devolver el OleDbDataReader para que el programa pueda trabajar con el resultado de la select, y ahí viene el problema:
public OleDbDataReader ejecutarSelect(string sql)
{
OleDbDataReader retorno;
command=new OleDbCommand(sql, conec);
retorno=command.ExecuteReader();
return retorno;
}
Me da el siguiente error:
System.Data.OleDb.OleDbDataReader cannot be serialized because it does not have a default public constructor.
¿qué debo hacer para poder devolver el dataReader resultante de la select?
Gracias
No puedes devolver un datareader desde un servicio web, por q no se puede serializar un datareader, eso es ponerlo en formato binario para enviarlo via xml. Ademas creo q no se llevaria bien, pues el data reader trabaja en modo conectado a la bd.
Opciones: devuelve un dataset o un dataTable, aunq este ultimo creo(no estoy seguro) q tp se puede serializar. Tb puedes guardarte los datos en un arrayList, hashtable, array de tipo y devolverlo.
Cualquier clase q herede de IList te servira para hacer bindings como el reader.
Suerte
Opciones: devuelve un dataset o un dataTable, aunq este ultimo creo(no estoy seguro) q tp se puede serializar. Tb puedes guardarte los datos en un arrayList, hashtable, array de tipo y devolverlo.
Cualquier clase q herede de IList te servira para hacer bindings como el reader.
Suerte