obtener informacion de BD

26/01/2007 - 08:45 por Cristina | Informe spam
Buenos dias a todo@s!A ver teng un problemilla para obtener unos valores de
mi BD, ejecuto paso a paso cada instruccion y si veo q la consulta coge los
valores q yo quiero...y si hay datos xa mostrar xo no me los muestra!!no se q
toy haciend mal...el codigo es algo asi:

Dim cmd As New Data.OracleClient.OracleCommand

Me.lstbOrden.Items.Clear()
Me.txtPuesto.Text =
ListadoPlantillas.lstPlantillas.SelectedItems(0).SubItems(3).Text

Dim i As Integer
Dim contador As Integer = 0
contador = Me.obtenerNumeroPersonas()

Dim m() As String
ReDim m(contador - 1)

cmd.CommandText = "SELECT Nombre FROM Persona WHERE IdPuesto=' " +
Me.txtPuesto.Text + " ' "
co = Principal.co
cmd.Connection = co
dr = cmd.ExecuteReader()
Try
While dr.Read() And i <> contador
m(i) = dr.GetValue(0).ToString
i += 1
End While
Finally
dr.Close()
End Try

'mostrar empleados en listbox
Dim j As Integer
For j = 0 To m.Length() - 1
'Me.lstbOrden.Items().Add(m(j - 1).ToString())
Next

Espero q alguien m pueda ayudar xq no se a q se debe esto, si paso a paso
todo esta bien!!!
 

Leer las respuestas

#1 Federico A. Colli
26/01/2007 - 14:05 | Informe spam
Hola.
Realmente no se si sera eso, pero el metodo obtenerNumeroPersonas
estara devolviendo una cantidad igual a la cantidad de registros a leer
del DataReader?
Yo que tu no utilizaria este metodo y tampoco un vector, dado que
puedes cargar el listado directamente con lo leido del DataReader de la
siguiente forma:
...
While dr.Read()
Me.lstbOrden.Items().Add(dr.GetValue(0).ToString)
End While
...

Alternativamente, si deseas utilizar la forma que describiste, te
recomiendo no utilizar el metodo que mencione antes y redimensionar el
vector en cada registro leido de la siguiente forma:

While dr.Read()
'pido disculpas pero no tengo el entorno de desarrollo a mano,
por lo que no
'recuerdo exactamente el metodo de la clase array para obtener la
cantidad
'de celdas en el vector, pero seria algo asi usando
"GetUpperBounds"

Redeim Preserve m(m."GetUpperBounds(0)" + 1)
m(GetUpperBounds(0)) = dr.GetValue(0).ToString
End While

Saludos

On 26 ene, 04:45, Cristina wrote:
Buenos dias a !A ver teng un problemilla para obtener unos valores de
mi BD, ejecuto paso a paso cada instruccion y si veo q la consulta coge los
valores q yo quiero...y si hay datos xa mostrar xo no me los muestra!!no se q
toy haciend mal...el codigo es algo asi:

Dim cmd As New Data.OracleClient.OracleCommand

Me.lstbOrden.Items.Clear()
Me.txtPuesto.Text > ListadoPlantillas.lstPlantillas.SelectedItems(0).SubItems(3).Text

Dim i As Integer
Dim contador As Integer = 0
contador = Me.obtenerNumeroPersonas()

Dim m() As String
ReDim m(contador - 1)

cmd.CommandText = "SELECT Nombre FROM Persona WHERE IdPuesto=' " +
Me.txtPuesto.Text + " ' "
co = Principal.co
cmd.Connection = co
dr = cmd.ExecuteReader()
Try
While dr.Read() And i <> contador
m(i) = dr.GetValue(0).ToString
i += 1
End While
Finally
dr.Close()
End Try

'mostrar empleados en listbox
Dim j As Integer
For j = 0 To m.Length() - 1
'Me.lstbOrden.Items().Add(m(j - 1).ToString())
Next

Espero q alguien m pueda ayudar xq no se a q se debe esto, si paso a paso
todo esta bien!!!

Preguntas similares