Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con el SELECT

Estas en el tema de Problema con el SELECT en el foro de .NET en Foros del Web. Hola amigos, Estoy realizando una sencilla consulta sobre una base de datos muy simple en ADO .NET y me da un error que considero bastante ...
  #1 (permalink)  
Antiguo 24/08/2006, 03:14
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 19 años, 6 meses
Puntos: 1
Problema con el SELECT

Hola amigos,

Estoy realizando una sencilla consulta sobre una base de datos muy simple en ADO .NET y me da un error que considero bastante extraño. Y es que me realiza la consulta bien cuando selecciono todos los campos de la tabla, pero cuando quiero seleccionar uno solo se interrumpe la consulta...

por ejemplo
SELECT * FROM Actores => PERFECTO
SELECT Nombre FROM Actores => ERROR

evidentemente la tabla Actores tiene un campo que se llama Nombre.

hace falta especificar entre algún caracter especial los campos que deseo selecionar?? Simplemente no se pueden seleccionar campos??

Por favor si alguien me pudiera solucionar esta duda estaría muy agradecida!!

Saludos compañeros!!
  #2 (permalink)  
Antiguo 24/08/2006, 04:00
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 5 meses
Puntos: 156
Si el campo "Nombre" existe, pues raro si que es.

Puedes especificar el fallo que sale? Puedes poener el trozo de código implicado en el fallo?


saludos
  #3 (permalink)  
Antiguo 24/08/2006, 05:02
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 19 años, 6 meses
Puntos: 1
Pues el caso es que tengo esa sentencia en un bloque Try - Catch. En el Catch he creado un MessageBox para q salga un mensaje en el caso de que no lo logre hacer y me muestra ese mensaje...

Gracias por intentar ayudar

Aquí va el trozo de código

Try
objConn.Open()
objAdapter = New OleDbDataAdapter("SELECT Nombre FROM Actores WHERE IdActor = 1 ORDER BY Nombre", objConn)
dt = New DataTable
objAdapter.Fill(dt)
n = dt.Rows.Count

If n = 0 Then
MessageBox.Show("No se ha encontrado ningún registro que coincida con la selección")
Else
For i = 0 To n - 1
'Asignar a las variables el contenido del registro
sIdActor = dt.Rows(i)("IdActor").ToString
sNombre = dt.Rows(i)("Nombre").ToString
sCodPelicula = dt.Rows(i)("CodPelicula").ToString

'Mostrar los datos de la fila actual
MessageBox.Show(sIdActor, "Identificador del actor")
MessageBox.Show(sNombre, "Nombre del actor")
MessageBox.Show(sCodPelicula, "Código de la película")
Next
End If

Catch ex As Exception
MessageBox.Show("Algo ha ido mal....", "ERROR")
End Try

--------------------

Me sale el aviso "Algo ha ido mal". Supongo q tendré algún fallo en el código pero no logro verlo
  #4 (permalink)  
Antiguo 24/08/2006, 05:32
 
Fecha de Ingreso: julio-2006
Mensajes: 15
Antigüedad: 18 años, 7 meses
Puntos: 0
Necesitariamos ver la excepcion. En c# es algo asi:
try
{
/* aqui va el codigo*/
}
catch(Exception ex)
{
this.label1.Text=ex.Message.Text;
}
en la etiqueta veriamos el mensaje de la excepcion.
  #5 (permalink)  
Antiguo 24/08/2006, 05:35
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 5 meses
Puntos: 156
Hola,

un pequeño apunte. En vez de:

Cita:
Catch ex As Exception
MessageBox.Show("Algo ha ido mal....", "ERROR")
End Try
haz:

Cita:
MessageBox.Show( ex,"ERROR")
así te da más pistas del error.

Luego cara al usuario ya lo cambias. Pero a la hora de desarrollo cuando te salte un error, que te dé el mensaje interno de error.

Bueno estosólo te lo comento porque a veces cuando te da un error, si te saca el mensaje interno, ya te da pistas de lo que has hecho mal.

Sobre el fallo:

Yo lo que veo es que llenas el datatable con el "nombre", en ningún momento lo llenas con el campo "idActor" ni "pelicula".

Por eso cuando intentas:

Cita:
sIdActor = dt.Rows(i)("IdActor").ToString
sCodPelicula = dt.Rows(i)("CodPelicula").ToString
te da error.

Saludos
  #6 (permalink)  
Antiguo 24/08/2006, 05:46
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 19 años, 6 meses
Puntos: 1
Efectivamente es eso

Mil gracias compañera!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:53.