none
Conexión SqlClient en un Poryecto Smart Device RRS feed

  • Pregunta

  • Hola:

    Estoy desarrollando un proyecto smart device con VS 2008 en VB y necesito que se conecte a una BD SQL Server 2005. Ya he realizado los cambios que he conseguido en otros foros sobre IP de la conexion WiFi, habiliatando el puerto en en SQL Server Surface, incluyendo el servicio en las excepciones del FireWall y siempre me sale el error de que no consigue el server o acceso denegado. Llevo varios dìas buscando y no he encontrado la manera de acceder a los datos desde el emulador. A continuacion va la porcion de codigo que estoy usando:

     

    Private Function ValidarUser(ByRef Usuario As String, ByVal Password As String) As Integer

     

    Dim leer As SqlDataReader

     

    Dim strconn As String = "Data Source=192.168.0.1,1433;Initial Catalog=PlantasAmb;User Id=sa;Password=qaz123;"

     

    Dim LPassword As String = ""

     

    Dim Cadena As String

     

    Dim Resultado As Integer = 0

    Cadena =

    "SELECT * FROM TAMB_Usuarios WHERE Usu_Login = '" & TxtUsuario.Text.Trim & "'"

     

    Using Con As New SqlConnection(strconn)

     

    Try

    Con.Open()

     

    Dim Buscar As New SqlCommand(Cadena, Con)

    leer = Buscar.ExecuteReader

     

    If leer.Read Then

    LPassword = leer.Item(1)

     

    If LPassword = Password Then

    Resultado = 0

     

    Else

    Resultado = 1

     

    End If

     

    Else

    Resultado = 2

     

    End If

     

    Catch ex As Exception

     

    Dim ss As String = ex.Message

    MsgBox(ex.Message, MsgBoxStyle.SystemModal)

    Resultado = 3

     

    End Try

     

    End Using

     

    Return Resultado

     

    End Function

    Atte,

    cjamaya

    martes, 13 de diciembre de 2011 10:40

Respuestas

  • La instancia no es la predeterminada, sino que se llama SQLEXPRESS. Para conectarte a ella tendrás que poner el nombre de la máquina (o la IP) junto con el nombre de la instancia; es decir, algo como 192.168.0.1\SQLEXPRESS

    Los alias sólo funcionan en las máquinas donde los creas, no en el resto.

    martes, 13 de diciembre de 2011 12:57

Todas las respuestas

  • ¿Es la instancia predeteriminada (sin nombre) la que instalaste? ¿Puedes ponernos una imagen de los servicios de SQL Server que tienes (SQL Server Configuration Manager)?

    Haz un TELNET al puerto 1433 de esa IP para asegurarte que ese puerto está abierto

    martes, 13 de diciembre de 2011 10:50
  • Hola Carlos:

    Gracias por responder. La instancia es la que viene por defecto SQLEXPRESS. Cree un alias con la IP y el puerto y puedo ingresar dando la IP y el puerto por el SQLServer Management Studio. Hice un ODBC dando la IP y me funciona con Excel. Hice telnet con la IP y el puerto (Telnet 192.168.0.1 1433). Donde no me funciona es el codigo que envie. Necesito conectarme directamente para no sincronizar. Ahi va la imagen que me pediste.

    Atte,

    cjamaya

    martes, 13 de diciembre de 2011 12:16
  • Hola Carlos:

    Realice la prueba completa con el ODBC y Excel y me sale el mismo error al momento que va traer los datos. Me muestra las tablas, me pide la contraseña para al momentos donde me pide de nuevo la contraseña y me pide el rango de celdas donde quiero ver los datos, me sale el error de la imagen. Ojala me puedas ayudar con esto.

    Atte,

    cjamaya

    martes, 13 de diciembre de 2011 12:25
  • Carlos:

    El error que te envie del odbc con Excel 2003 me salio al seleccionar Datos, Obtener Datos Externos, Importar Datos. Al seleccionar Nueva Consulta de Base de Datos, si me trae los datos.

    Atte,

    cjamaya

    martes, 13 de diciembre de 2011 12:49
  • La instancia no es la predeterminada, sino que se llama SQLEXPRESS. Para conectarte a ella tendrás que poner el nombre de la máquina (o la IP) junto con el nombre de la instancia; es decir, algo como 192.168.0.1\SQLEXPRESS

    Los alias sólo funcionan en las máquinas donde los creas, no en el resto.

    martes, 13 de diciembre de 2011 12:57
  • Carlos:

    Ya habia intentado con la instancia. Me sale el mismo error. Cuando le añado el puerto antes de la instancia. Me sale el siguiente error.

    A native exception has occurred in PlanillaMovil.exe. Select Quit and then restart this program, or select Details for more information.

    Al dar clice en Details, sale:

    ExceptionCode: 0xc0000005 ExceptionAddress: 0x03fa5938 Reading: 0x00000000

    Faulting module: coredll.dll

    Offset: 0x00057938

    Atte,

    cjamaya

    martes, 13 de diciembre de 2011 14:15
  • Es que no tienes que añadirle el puerto, prueba como te dije.

    De todos modos ese error es muy diferente al que te mostraba antes, entre otras cosas porque la conexión la estás probando desde otra aplicación...

    martes, 13 de diciembre de 2011 14:40
  • Con la cadena:

    Dim

    strconn As String =

    "Data Source=192.168.0.1\SQLEXPRESS;Initial Catalog=PlantasAmb;User Id=sa;Password=qaz123;"

    Me sale el siguiente error:

    -  System.Data.SqlClient.SqlException {"Specified SQL server not found: 192.168.0.1\SQLEXPRESS"} System.Data.SqlClient.SqlException

    Esto es lo que tiene la variable de excepcion:


      Class 20 Byte
    +  Errors {System.Data.SqlClient.SqlErrorCollection} System.Data.SqlClient.SqlErrorCollection
      InnerException Nothing System.Exception
      LineNumber 0 Integer
      Message "SqlException" String
      Number 6 Integer
      Procedure "ConnectionOpen (Connect())." String
      Server "192.168.0.1\SQLEXPRESS" String
      Source ".Net SqlClient Data Provider" String
      StackTrace "   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, TdsParserState state)    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, TdsParserState state)    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()    at System.Data.SqlClient.TdsParser.Connect(String host, SqlInternalConnection connHandler, Int32 timeout)    at System.Data.SqlClient.SqlInternalConnection.OpenAndLogin()    at System.Data.SqlClient.SqlInternalConnection..ctor(SqlConnection connection, Hashtable connectionOptions)    at System.Data.SqlClient.SqlConnection.Open()    at PlanillaMovil.Inicio.ValidarUser(String& Usuario, String Password)    at PlanillaMovil.Inicio.BtnIngresar_Click(Object sender, EventArgs e)    at System.Windows.Forms.Control.OnClick(EventArgs e)    at System.Windows.Forms.Button.OnClick(EventArgs e)    at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam)    at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)    at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)    at System.Windows.Forms.Application.Run(Form fm)    at PlanillaMovil.Inicio.Main() " String
      State 0 Byte

    Atte,

    cjamaya

    martes, 13 de diciembre de 2011 15:15
  • Hola.

    ¿Resolviste el problema?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    domingo, 18 de diciembre de 2011 22:55
    Moderador