DataReader

02/10/2004 - 01:37 por Ramon Zarza | Informe spam
Colegas

Como obtengo el valor de un objeto cargado con el DataReader??

Esto es lo que hago. Leo la columna (0) peor no la (1)

hay alguan forma de hacerlo??

************************
miConexion.Open();
miReader= miComando.ExecuteReader();

// Recorro la tabla y alimento mi lista de opciones

while (miReader.Read())
{
ListItem nuevoItem = new ListItem();

nuevoItem.Text = (string)miReader.GetValue(0); // columna
<CategoriaDocumento>
nuevoItem.Value = (string)miReader.GetValue(0); // columna
<idCategoriaDocumento>
// -- Este ultimo es un id por lo que debe ser INT me da error al
colocar (1)
// hay alguna forma de referencia el nombre de los campos obtenidos??

TipoRegistro.Items.Add(nuevoItem);

}
miReader.Close();
miConexion.Close();
**********************************

Gracias a todos

Preguntas similare

Leer las respuestas

#6 Misael Monterroca
04/10/2004 - 02:05 | Informe spam
Tambien en un recordset de ADO se podia llamar tanto por nombre como por
indice de culumna.

Pues en teoria no ha de ver sido incluido por perfomance, ya que el hacer la
referencia por nombre obligamos a que el datareader internamente realize la
busqueda, es por esto que es más recomendado hacerlo por indice que por
nombre :( aunque por mucho yo prefiero por nombre aunque no sea lo más
conveniente :)


Saludos!
http://www.neo-mx.com/blog


"Octavio Hernandez" escribió en el mensaje
news:
Misael,

Muchas gracias, tienes razón. Es en los ResultSets de Java donde se puede
hacer ambas cosas indistintamente. A veces le apunto a .NET cosas que he
visto en Java (y viceversa).

La pregunta que me surge ahora es ¿por qué los de MS no han hecho lo
mismo,
y te obligan a utilizar el GetOrdinal() explícitamente?

Salu2,

Octavio

"Misael Monterroca" escribió en el
mensaje
news:
Solo una pequeña aclaración

El metodo GetXXX no puedes pasarle directamente el nombre de la culumna,


si
quieres hacer esto hay que obtener el numero de la culumna con
GetOrdinal("NombreCol") y este asignarlo al GetXXX

GetInt32(GetOrdinal(NombreCol"))


Saludos!
http://www.neo-mx.com/blog


"Octavio Hernandez" escribió en el mensaje
news:
> Ramón,
>
> La clase DataReader tiene métodos GetString(), GetInt32(),


GetDateTime(),
> etc. para utilizarlos en dependencia del tipo del dato que vayas a
> recuperar. Son métodos sobrecargados, y puedes pasarle tanto el número
> como
> el nombre de la columna.
>
> En general, yo creo que es preferible utilizar estos métodos en lugar
> de
> GetValue() o la notación equivalente miReader["NombreColumna"]), que
> devuelven un object y al final terminas teniendo que hacer castings.
>
> En esta página te advierten de eso y te dan un "mapping" de los tipos
> debase
> de datos a los tipos .NET:
>
>


http://msdn.microsoft.com/library/d...atypes.asp
>
> Yo utilizo GetValue() únicamente si voy a escribir alguna utilidad para
> abrir alguna tabla cuya estructura desconozco a priori. Pero eso puede


que
> sea problema de gustos...
>
> Salu2,
>
> Octavio
>
> "Ramon Zarza" escribió en el mensaje
> news:%
>> Colegas
>>
>> Como obtengo el valor de un objeto cargado con el DataReader??
>>
>> Esto es lo que hago. Leo la columna (0) peor no la (1)
>>
>> hay alguan forma de hacerlo??
>>
>> ************************
>> miConexion.Open();
>> miReader= miComando.ExecuteReader();
>>
>> // Recorro la tabla y alimento mi lista de opciones
>>
>> while (miReader.Read())
>> {
>> ListItem nuevoItem = new ListItem();
>>
>> nuevoItem.Text = (string)miReader.GetValue(0); // columna
>> <CategoriaDocumento>
>> nuevoItem.Value = (string)miReader.GetValue(0); // columna
>> <idCategoriaDocumento>
>> // -- Este ultimo es un id por lo que debe ser INT me da error


al
>> colocar (1)
>> // hay alguna forma de referencia el nombre de los campos


obtenidos??
>>
>> TipoRegistro.Items.Add(nuevoItem);
>>
>> }
>> miReader.Close();
>> miConexion.Close();
>> **********************************
>>
>> Gracias a todos
>>
>>
>>
>
>






Respuesta Responder a este mensaje
#7 Ramon Zarza
05/10/2004 - 19:14 | Informe spam
Gracias a todos por sus utiles comentarios

he aprendido un monton

Saludos

"Ramon Zarza" wrote in message
news:%
Colegas

Como obtengo el valor de un objeto cargado con el DataReader??

Esto es lo que hago. Leo la columna (0) peor no la (1)

hay alguan forma de hacerlo??

************************
miConexion.Open();
miReader= miComando.ExecuteReader();

// Recorro la tabla y alimento mi lista de opciones

while (miReader.Read())
{
ListItem nuevoItem = new ListItem();

nuevoItem.Text = (string)miReader.GetValue(0); // columna
<CategoriaDocumento>
nuevoItem.Value = (string)miReader.GetValue(0); // columna
<idCategoriaDocumento>
// -- Este ultimo es un id por lo que debe ser INT me da error al
colocar (1)
// hay alguna forma de referencia el nombre de los campos obtenidos??

TipoRegistro.Items.Add(nuevoItem);

}
miReader.Close();
miConexion.Close();
**********************************

Gracias a todos



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida