Viernes 8 de Noviembre de 2024, 16:08
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
Saber Si Select Encuentra Lo Q Busca
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Saber Si Select Encuentra Lo Q Busca (Leído 2617 veces)
Sete
Nuevo Miembro
Mensajes: 8
Saber Si Select Encuentra Lo Q Busca
«
en:
Jueves 16 de Junio de 2005, 08:27 »
0
Saludos señores, les cuento, hice una consulta a una BD en access desde VB.NET, no me genera ningun error y por lo tanto deberia estar bien, pero el problema es q no se como hacer para saber si la consulta devuelve algun resultado, aqui les coloco el codigo:
Código: Text
' VARIABLES
Private Conn As OleDbConnection
Private DA As OleDbDataAdapter
Private selectCMD As OleDbCommand
Private DS As DataSet
'En el Form
Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\pruebasdeVB.NET\Almagro.mdb")
selectCMD = New OleDbCommand("SELECT Login, Pass FROM Usuario where (Login=@Login and Pass=@Pass)", Conn)
DA = New OleDbDataAdapter()
DA.SelectCommand = selectCMD
selectCMD.Parameters.Add("@Login", OleDbType.VarChar, 15).Value = txtLogin.Text
selectCMD.Parameters.Add("@Pass", OleDbType.VarChar, 15).Value = txtPass.Text
MessageBox.Show("HAsta los Parametros.....Todo OK")
'En el Boton
Dim custDS As DataSet = New DataSet()
DA.Fill(custDS, "Customers")
MessageBox.Show("Conuslta Realizada OK")
Como dato, todo esto ya lo habia echo, pero con el asistente, y como generaba tanto codigo q no entendia me decidi a hacerlo por mi cuenta, pero el problema es solo que no se q codigo colocar para ver si la consulta encuentra o no lo q anda buscando, para posteriormente dejar ingresar o no a la aplicacion.
eso seria...gracias muchachos...y muchos saludos.
Tweet
Güorker
Miembro MUY activo
Mensajes: 383
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #1 en:
Jueves 16 de Junio de 2005, 08:42 »
0
Hola,
Si estas utilizado el visual studio para programar, te sugiero que pongas un punto de interrupcion justo antes del metodo Fill del DataAdpter.
Cuando ejecutes tu programite y se pare en ese punto, vas ejecutando instruccion por instruccion hasta que se ejecute el metodo fill. Despues agregas el DataSet a la ventana de inspeccion y miras en sus propiedades para ver cuantas filas tiene la 1ª tabla del Dataset y los valores que tiene.
Supongo que así puedes saber lo que te devuelve la consulta.
Suerte
[size=109]
Ondo ibili, gutxi gastau eta bueltak amari
[/size]
[size=109]
Pasalo bien, gasta poco y las vueltas a tu madre
[/size]
Knapp
Miembro activo
Mensajes: 28
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #2 en:
Jueves 16 de Junio de 2005, 14:33 »
0
para saber si tu dataset tiene datos o no puedes hacer la siguiente comprovación:
dataset.table(0).rows.count > 0 <- devuelve datos
por otra parte si lo único que quieres es comprobar si la select te devuelve datos y punto... en lugar de utilizar un dataadapter y cargar los datos en el dataset.. lo que haría es un select count y lo ejecutaria con el sqlcommand.executeScalar
Salut
senzao18
Miembro HIPER activo
Mensajes: 553
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #3 en:
Jueves 16 de Junio de 2005, 16:21 »
0
Estoy de acuerdo con Knapp.
Tambien puedes utilizar un DataReader si la consulta solo te regresa un registro cuando tiene datos y usarias la propiedad hasrow.
Para un login yo usaria sqlcommand.executeScalar
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo
-->
Sete
Nuevo Miembro
Mensajes: 8
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #4 en:
Jueves 16 de Junio de 2005, 17:55 »
0
Cita de: ""senzao18""
Para un login yo usaria sqlcommand.executeScalar
Como obviamente soy nueo en esto, y si ustedes dicen q es mejor ejecutar un executeScalar, entonces mejor lo intentare hacer asi, oigan no tendran un ejemplito de este tipode consultas por ahí??
Saludos.
Sete
Nuevo Miembro
Mensajes: 8
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #5 en:
Viernes 17 de Junio de 2005, 01:09 »
0
Ya definitivamente les hice casi y me meti con el ExcecuteScalar, la cosa es q me quedo de la siguiente forma:
Código: Text
' Variables
Private Conn As OleDbConnection
Private scalarCMD As OleDbCommand
Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\pruebasdeVB.NET\-==Ultimo==-\Login.0.1.1\bin\Almagro.mdb")
scalarCMD = New OleDbCommand("SELECT Login, Pass FROM Usuario where (Login=@Login and Pass=@Pass)", Conn)
Dim respuesta As String
Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\pruebasdeVB.NET\-==Ultimo==-\Login.0.1.1\bin\Almagro.mdb")
scalarCMD = New OleDbCommand("SELECT Login, Pass FROM Usuario where (Login=@Login and Pass=@Pass)", Conn)
scalarCMD.Parameters.Add("@Login", OleDbType.VarChar, 15).Value = txtLogin.Text
scalarCMD.Parameters.Add("@Pass", OleDbType.VarChar, 15).Value = txtPass.Text
MessageBox.Show("Hasta los Parametros.....Todo OK")
Conn.Open()
respuesta = scalarCMD.ExecuteScalar()
Conn.Close()
MessageBox.Show(respuesta)
El problema es q al final solo me entrega el Login y no se como hacerlo para q me entregue la Pass y una vez echo esto q hacer para dejar Ingresar a la aplicacion ..Bueno eso seria.
Sete
Nuevo Miembro
Mensajes: 8
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #6 en:
Viernes 17 de Junio de 2005, 02:04 »
0
EUREKA!!
ya señores encontre como asignar los resultados a una variable...lo hice así:
Código: Text
scalarCMD.Parameters.Add("@Login", OleDbType.VarChar, 15).Value = txtLogin.Text
scalarCMD.Parameters.Add("@Pass", OleDbType.VarChar, 15).Value = txtPass.Text
MessageBox.Show("Hasta los Parametros.....Todo OK")
Conn.Open()
scalarCMD.ExecuteScalar()
respLogin = scalarCMD.Parameters("@Login").Value()
respPass = scalarCMD.Parameters("@Pass").Value()
Conn.Close()
MessageBox.Show(respLogin)
MessageBox.Show(respPass)
Ahora haria un if preguntando si las respLogin y respPass, son igua les txtLogin.text y txtPass.text, para abriri la aplicacion o cerrarla, pero sera la forma mas indicada?? o abra alguna mas eficiente??
Saludos señores y gracias por la ayuda.
=)
senzao18
Miembro HIPER activo
Mensajes: 553
Re: Saber Si Select Encuentra Lo Q Busca
«
Respuesta #7 en:
Viernes 17 de Junio de 2005, 17:01 »
0
Yo lo que haria es regresar un valor true si la consulta encuentra registros con el procedimiento almacenado y tomar la variable.
Código: Text
If (select count(*) from usuarios donde usuario y contraseña igual a algo)>0
set @bandera =True
else
set @bandera =False
select @bandera from tabla
O declarar un parametro de tipo output como tu le haces, pero que no sea el usuario y contrasña.
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo
-->
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
Saber Si Select Encuentra Lo Q Busca