Muchas veces me ha tocado realizar consultas a querys ya armadas, o mostrar los datos en un gridview, para no realizar conversión de objetos o reinventar la ruda, se me asía mas fácil pasar todo el recorset a un datatable y trabajar como siempre lo hacia con este objeto.
public DataTable RsTODataTablaV2(ref SAPbobsCOM.Recordset _rs)
{
DataTable dt = new DataTable();
for (int i = 0; i < _rs.Fields.Count; i++)
dt.Columns.Add(_rs.Fields.Item(i).Description);
while (!_rs.EoF)
{
DataRow row = dt.NewRow();
for (int i = 0; i < _rs.Fields.Count; i++)
row[i] = _rs.Fields.Item(i).Value;
dt.Rows.Add(row.ItemArray);
_rs.MoveNext();
}
return dt;
}
//esta es la version original
public DataTable RsTODataTabla(ref SAPbobsCOM.Recordset _rs)
{
DataTable dt = new DataTable();
for (int i = 0; i < _rs.Fields.Count; i++)
dt.Columns.Add(_rs.Fields.Item(i).Description);
while (!_rs.EoF)
{
object[] array = new object[_rs.Fields.Count];
for (int i = 0; i < _rs.Fields.Count; i++)
array[i] = _rs.Fields.Item(i).Value;
dt.Rows.Add(array);
_rs.MoveNext();
}
return dt;
}