Visual Basic.NET - Conexion VB2010 con SQL2005

 
Vista:

Conexion VB2010 con SQL2005

Publicado por Carlos Linares (10 intervenciones) el 03/11/2010 19:58:16
Buenas Tardes,

Estoy tratando de conectar SQL con VB pero no me funciona la conexion.. Porque!?
ANEXO EL CODIGO.. Ojalá puedan ayudarme... GRACIAS DE ANTEMANO!!

Imports Microsoft.SqlServer
Public Class frmcontra

Private consql As New SqlClient.SqlConnection("Data Source=sist-clinares;Initial Catalog=Inventario2010;User Id=sa;Password=inventario;")

Private Sub btmaceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmaceptar.Click
Try
consql.Close()
consql.Open()
Dim cmduser As New SqlClient.SqlCommand("select * from usuarios where usuario='" & txtusuario.Text & "' and contrasenia=' " & txtcontrasenia.Text & "'", consql)
Dim druser As SqlClient.SqlDataReader = cmduser.ExecuteReader
If druser.Read = True Then
If txtusuario.Text = druser.GetValue(0) Then
If txtcontrasenia.Text = druser.GetValue(1) Then
If druser.GetValue(4) = "True" Then
MsgBox("Usuario conectado", MsgBoxStyle.Critical, "Inventario2010")
Return
Else
MsgBox("Bienvenido (a)" & druser.GetValue(2), MsgBoxStyle.Information, "Inventario2010")
Dim cmdconectar As New SqlClient.SqlCommand("update usuarios set conectado='True' where usuario='" & txtusuario.Text & "' and contrasenia='" & txtcontrasenia.Text & "'", consql)
cmdconectar.ExecuteNonQuery()
cmdconectar.Dispose()
Select Case druser.GetValue(3)
Case "Administrador"
MsgBox("Administrador", MsgBoxStyle.Information, "Inventario2010")
Case "Estandar"
MsgBox("Standar", MsgBoxStyle.Information, "Inventario2010")
End Select
End If
End If
End If
End If
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, "Inventario2010")
consql.Close()
End Try
frmprincipal.Show()
Me.Hide()
End Sub
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
Imágen de perfil de roger

RE:Conexion VB2010 con SQL2005

Publicado por roger (186 intervenciones) el 04/11/2010 01:35:55
que error te aparece???
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:Conexion VB2010 con SQL2005

Publicado por Carlos Linares (10 intervenciones) el 04/11/2010 14:45:03
Bueno, no es un error como tal solo que pasa directo a la aplicación!! Osea el lee los primeros codigos llega hasta donde dice:

If druser.Read = True Then

Y DE AHI SALTA PARA EL ULTIMO

End IF..

Y no le para a los otros codigos.. Es como si fueran comentarios..!!

Y este es mi cadena de conexion...

Imports Microsoft.SqlServer

Private consql As New SqlClient.SqlConnection("Data Source=SIST-CLINARES;Initial Catalog=Inventario2010;Persist Security Info=True;User ID=sa;Password=inventario")

Primero lo conecte donde dice Explorador de Servidores y luego le di boton derecho en Conexiones de Datos y luego Agregar Conexion..!!
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
Imágen de perfil de roger

RE:Conexion VB2010 con SQL2005

Publicado por roger (186 intervenciones) el 04/11/2010 16:23:42
segun lo que dices esta funcionando bien la conexion porque pasa por la linea conexion.open, si llega a druser.Read = True y de ahi salta al final, es porque el reader no tiene datos, y pues no pareceria error de sintaxis en la consulta sql porque de ser asi te saltaria una excepcion, entonces te aconsejo que verifiques que la consulta si retorne resultados.

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:Conexion VB2010 con SQL2005

Publicado por Carlos Linares (10 intervenciones) el 04/11/2010 16:37:35
Cuando pasa por esta linea
Dim cmduser As New SqlClient.SqlCommand("select * from usuarios where usuario='" & txtusuario.Text & "' and contrasenia=' " & txtcontrasenia.Text & "'", consql)

y en donde dice txrusuario y txtcontrasenia tiene datos!
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:Conexion VB2010 con SQL2005

Publicado por Carlos Linares (10 intervenciones) el 04/11/2010 16:42:31
Y si quito esta linea

If druser.Read = True Then

y corro el sistema despues de poner el usuario y el pass me arroja un mensaje que dice:
ERROR DE LECTURA PORQUE NO HAY DATOS..

Y despues de darle a aceptar entra al sistema..!!
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:Conexion VB2010 con SQL2005

Publicado por Carlos Linares (10 intervenciones) el 04/11/2010 16:50:28
Cuando pasa por este codigo

If druser.Read = True Then

Reviso en la parte de abajo donde dice "INSPECCION"

Me da esta información:

Que el "druser.HasRows" es "False"
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
Imágen de perfil de roger

RE:Conexion VB2010 con SQL2005

Publicado por roger (186 intervenciones) el 05/11/2010 03:38:15
por eso digo compañero que la consulta no te esta devolviendo datos, indpendiente si el txtuser o txtpass tienen datos, lo importante es que la sentencia sql concatenada devuelva datos, una manera muy facil de verificar es llevar la cadena de la consulta a una variable, y depurando tomar esa sentencia sql y hacer la consulta directamente desde el management de sql server por ejemplo.

Nota: El metodo Read lee la fila siguiente permitiendo acceder mediante el reader a las columnas que devuelve la consulta, si no se pone el read, te sale el error de que no hay datos, porque aun no se han leido

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