ASP.NET - Duda respecto Dataset

   
Vista:

Duda respecto Dataset

Publicado por Peter (2 intervenciones) el 15/09/2008 20:56:27
Hola amigos,
tengo un programa ASP.NET que usa un Dataset con un query tipeado (FillbyID) recibe el parámetro @ID y devuelve el resultado.

estoy tratando de hacer una validación para determinar si el registro ID existe o no en la base de datos y no se como mover el resultado de esa query a un campo por el cual pueda preguntar
este es el código que tengo hasta el momento:
------------------------------------------------------------------------------------------------------------
' LLAMA A DATASET PASANDO USUARIO DE PANTALLA Y EVALUA SI EXISTE
Dim p89 As New P89_KUSERTableAdapter

'Aquí ejecuta el query pasando el campo de pantalla
' este solo devolverá un registro
p89.GetDataByUUSR(iousr.Text)
------------------------------------------------------------------------------------------------------------

ahora necesito que el resultado de mi query se mueva a un campo por el cual preguntar por ejemplo algo así:
------------------------------------------------------------------------------------------------------------
if campo = nothing then
' el registro no existe en la base de datos
else
' el registro existe.
end if
------------------------------------------------------------------------------------------------------------

Otra pregunta: su mi query devuelve todos los campos de la tabla por ejemplo: Usuario, Nombre, Apellido ¿ como puedo preguntar por el campo Nombre del Dataset?

espero su ayuda amigos que estoy super complicado con este problema.

Saludos y gracias de antemano.

Peter
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda respecto Dataset

Publicado por @vm (196 intervenciones) el 17/09/2008 18:29:16
Puedes usar la propiedad RowCount para saber si la tabla deseada del DataSet tiene registros: ds.Tables[0].Rows.Count

y para acceder a un campo: ds.Tables[0].Rows[0]["Campo"]

Nota:
Tables[0] ó Tables["NombreTabla"]
Rows[0]: Número de fila
["Campo"]: Nombre del campo del cual se desea obtener el valor.

Si deseas recorrer las filas resultado de un select, usa un DataReader.

Yo te recomiendo que solo para saber si un usuario existe, crees un procedimiento almacenado, que reciba como parámetro el IdUsuario o el Nombre de usuario, haga la búsqueda y regrese 0 o 1 según si lo encontró o no. Y solo mandas ejecutar este store con ExecuteNonQuery de un comando.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda respecto Dataset

Publicado por Peter (2 intervenciones) el 18/09/2008 00:21:41
Hola Agustín, gracias por la ayuda pero lo pude solucionar poniendo este código en el botón aceptar:
---------------------------------------------------------------------------------------------------
Imports MibaseTableadapters
-----------------------------------------------------

Protected Sub btngrabar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btngrabar.Click
' Esto va siempre para poder llamar los metodos del dataset
Dim P89_KUSER As New P89_KUSERTableAdapter

' Define la tabla
Dim KUSER As MiBase.P89_KUSERDataTable

' Define el registro
Dim REGKUSER As MiBase.P89_KUSERRow

'EJECUTA EL QUERY DEFINIDO EN EL DATASET PASANDO PARÁMETRO DEL WEB FORM

KUSER = P89_KUSER.GetDataByUUSR(Trim(iousr.Text))

' ESTE CICLO ES PARA LLEVAR LOS REGISTROS DEL DATAtable obtenidos en la consulta
' SE QUE SOLO SERÁ UN REGISTRO PERO DE TODAS FORMAS PIDE QUE SEA
' UN CICLO.

Dim SW As String
Dim CLAVE As String

' ejecuta ciclo de lectura de los resultados del dataset
' pude haber echo un query escalar para que me devolviera solo un registro y no procesar
' en ciclo. pero para el caso da lo mismo porque la condición de unicidad de registro la
' controlo en el dataset.

For Each REGKUSER In KUSER
SW = Trim(REGKUSER.UNOM)
CLAVE = Trim(REGKUSER.UPASS)
Next

If SW = "" Then
Mensaje(Me, "Error: El usuario ingresado no Existe en el sistema")
Else

If CLAVE <> Trim(iocla.Text) Then

If Trim(iousr.Text) <> "" And Trim(iocla.Text) <> "" Then
Mensaje(Me, "Error: La contraseña Ingresada no correponde al usuario")
End If
Else

Mensaje(Me, "Usuario logeado correctamente")
End If

End If

End Sub

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

Me funcionó perfecto asi que les dejo el código por si a alguien le sirve.
Saludos y Gracias una vez más.

Peter
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar