Problemas con sqlDataReader
Publicado por Laura (8 intervenciones) el 15/09/2007 13:36:31
Hola a todos!!!!!
Estoy tratando de armar conexiones desde VB.NET a SQL 2000 y tengo un problema al ejecutar las consultas. Las funciones Borrar, modificar y agregar andan excelente, pero cuando ejecuto buscar no me devuelve nada (como se hubiera “0” en la base, pero no es así) para mi hay algún error cuando llamo al datareader, pero sinceramente no me doy cuenta que es. Ase mucho que estoy con esto, y agradecería mucho si alguien me puede decir que es lo que estoy haciendo mal. Abajo dejo el fragmento de código que afecta a la función Buscar.
La función EjecutarConsulta de la clase conectar es:
Public Class conectar
Private Shared StrCx As String = "Data Source=OJITOS;Initial Catalog=Cliente;Integrated Security=True"
Private Shared Function OptenerConexion() As SqlConnection
Return New SqlConnection(StrCx)
End Function
Public Shared Function EjecutarConsulta(ByVal Comando As SqlCommand) As SqlDataReader
Try
Dim Cx As SqlConnection = conectar.OptenerConexion()
Cx.Open()
Comando.Connection = Cx
Return Comando.ExecuteReader()
Catch ex As Exception
Throw New Exception
End Try
End Function
End Class
La funcion Buscar esta en una clase “persona” y es asi:
Public Function Buscar(ByVal unaPersona As String) As persona
Try
Dim StrCmd As String = "Select * from Cliente where DNI=@DNI"
Dim cmd As New SqlCommand(StrCmd)
cmd.CommandType = CommandType.Text
Dim prm As New SqlParameter("@DNI", unaPersona)
prm.DbType = DbType.String
cmd.Parameters.Add(prm)
Dim dr As SqlDataReader = conectar.EjecutarConsulta(cmd)
dr.Read()
Dim xPersona As New persona
xPersona.DNI = dr.Item(0)
xPersona.Nombre = dr.Item(1)
xPersona.Apellido = dr.Item(2)
Return xPersona
Catch ex As Exception
Throw New Exception
End Try
End Function
Y en el form, el llamado a la funcion es:
Public Class Form1
Private tmpPersona As persona
Private Sub cmdBuscar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBuscar.Click
tmpPersona = New persona()
tmpPersona.DNI = Me.txtDNI.Text
tmpPersona.Nombre = Me.lblNombre.Text
tmpPersona.Apellido = Me.lblApellido.Text
tmpPersona.Buscar(txtDNI.Text)
End Sub
End Class
Estoy tratando de armar conexiones desde VB.NET a SQL 2000 y tengo un problema al ejecutar las consultas. Las funciones Borrar, modificar y agregar andan excelente, pero cuando ejecuto buscar no me devuelve nada (como se hubiera “0” en la base, pero no es así) para mi hay algún error cuando llamo al datareader, pero sinceramente no me doy cuenta que es. Ase mucho que estoy con esto, y agradecería mucho si alguien me puede decir que es lo que estoy haciendo mal. Abajo dejo el fragmento de código que afecta a la función Buscar.
La función EjecutarConsulta de la clase conectar es:
Public Class conectar
Private Shared StrCx As String = "Data Source=OJITOS;Initial Catalog=Cliente;Integrated Security=True"
Private Shared Function OptenerConexion() As SqlConnection
Return New SqlConnection(StrCx)
End Function
Public Shared Function EjecutarConsulta(ByVal Comando As SqlCommand) As SqlDataReader
Try
Dim Cx As SqlConnection = conectar.OptenerConexion()
Cx.Open()
Comando.Connection = Cx
Return Comando.ExecuteReader()
Catch ex As Exception
Throw New Exception
End Try
End Function
End Class
La funcion Buscar esta en una clase “persona” y es asi:
Public Function Buscar(ByVal unaPersona As String) As persona
Try
Dim StrCmd As String = "Select * from Cliente where DNI=@DNI"
Dim cmd As New SqlCommand(StrCmd)
cmd.CommandType = CommandType.Text
Dim prm As New SqlParameter("@DNI", unaPersona)
prm.DbType = DbType.String
cmd.Parameters.Add(prm)
Dim dr As SqlDataReader = conectar.EjecutarConsulta(cmd)
dr.Read()
Dim xPersona As New persona
xPersona.DNI = dr.Item(0)
xPersona.Nombre = dr.Item(1)
xPersona.Apellido = dr.Item(2)
Return xPersona
Catch ex As Exception
Throw New Exception
End Try
End Function
Y en el form, el llamado a la funcion es:
Public Class Form1
Private tmpPersona As persona
Private Sub cmdBuscar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBuscar.Click
tmpPersona = New persona()
tmpPersona.DNI = Me.txtDNI.Text
tmpPersona.Nombre = Me.lblNombre.Text
tmpPersona.Apellido = Me.lblApellido.Text
tmpPersona.Buscar(txtDNI.Text)
End Sub
End Class
Valora esta pregunta


0