none
Por favor ayudenme estoy muy desesperado con unas sesiones RRS feed

  • Pregunta

  • Ya no tengo ni palabras para describir el error solo pido ayuda, en un inicio de sesion declaro dos variables de sesion con el valor de 2 cajas de texto como se puede ver a continuacion:

    Protected Sub btnEnviar_Click(sender As Object, e As EventArgs) Handles btnEnviar.Click
            'Try
            Dim numero As Integer
            Dim davi As DataView = DirectCast(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
            If davi.Count > 0 Then
                numero = 1
            End If

            If numero = 1 Then
                Session("usuario") = davi(0).Item(0)
                Response.Redirect("curriculum.aspx")
                Session("usuario2") = (txtusuario.Text)
                Session("password") = (txtcontraseña.Text)
                'Response.Redirect(String.Format("curriculum.aspx?dato1=(0)&dato2=(1)", txtusuario.Text.ToString, txtcontraseña.Text.ToString))
            Else
                Response.Write("<script>alert('Nombre de usuario o contraseña incorrecta')</script>")
            End If
            'Session.Add("usuario", "valor")
            'Catch ex As Exception
            'ponse.Write("<script>alert('Debes rellenar los dos campos, ambos son obligatorios')</script>")
            'End Try
        End Sub

    Y en otra pagina los recibo y hago una consulta :

    Dim queryString As String = "SELECT id_usuario FROM usuarios WHERE usuario= '" & usuario2 & "' and password= '" & contraseña & "' "
            Using connection As New SqlConnection(connectionString)
                connection.Open()
                Dim command As New SqlCommand(queryString, connection)
                command.Parameters.AddWithValue("@usuario2", usuario2)
                command.Parameters.AddWithValue("@contraseña", contraseña)

                txtusuario2.Text = Convert.ToInt32(command.ExecuteScalar())

            End Using

    El error que me manda es el siguiente 

    Error de conversión al convertir el valor varchar 'Guillermo' al tipo de datos int.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. 

    Detalles de la excepción: System.Data.SqlClient.SqlException: Error de conversión al convertir el valor varchar 'Guillermo' al tipo de datos int.

    Error de código fuente: 
    Línea 7:          'Try
    Línea 8:          Dim numero As Integer
    Línea 9:          Dim davi As DataView = DirectCast(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
    Línea 10:         If davi.Count > 0 Then
    Línea 11:             numero = 1

    Archivo de origen: C:\sanasana2\bolsa2.aspx.vb    Línea: 

    Seguimiento de la pila: 
    [SqlException (0x80131904): Error de conversión al convertir el valor varchar 'Guillermo' al tipo de datos int.]
       System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +109
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +59
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +207
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2422
       System.Data.SqlClient.SqlDataReader.HasMoreRows() +157
       System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) +196
       System.Data.SqlClient.SqlDataReader.Read() +9
       System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) +201
       System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) +187
       System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +362
       System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +188
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +141
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +91
       System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1248
       System.Web.UI.WebControls.SqlDataSource.Select(DataSourceSelectArguments arguments) +19
       bolsa2.btnEnviar_Click(Object sender, EventArgs e) in C:\sanasana2\bolsa2.aspx.vb:9
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +78
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +100
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2863

    El nombre de usuario que ingrese es Guillermo y me arroja eso , por favor tengo que acabar esto urgentemente AYUDENME

    lunes, 12 de octubre de 2015 2:44

Respuestas

  • seguramente el error esté aquí.

    txtusuario2.Text = Convert.ToInt32(command.ExecuteScalar())

    como ves lo que haces es ejecutar el Scalar() y luego aplicar una conversión a Int32. Si observas tu consulta de ese command, devuelves un id_usuario y si ese id_usuario NO se puede convertir a entero obtendrás tu excepcion. Te recomiendo NO realices la conversión a. Int32 si vas a devolver caracteres no convertibles a entero.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    lunes, 12 de octubre de 2015 10:09
    Moderador