none
wpf ejecutar codigo despues de una comprobacion si hay dato en sql server RRS feed

  • Pregunta

  • Alguien porfavor me puede ayudar con estos codigos no me guardar en la base de datos sql, aqui esta los codigos:

     Private Sub btnGuardarIngresos_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnGuardarIngresos.Click
            comprobarsiestaregistrado()
            GuardarVisitaEspecial()
        End Sub

     Sub comprobarsiestaregistrado()
            Try
                SqlCon = New SqlConnection(connectionString)
                SqlCmd.Connection = SqlCon
                SqlCmd.CommandText = "[sp_Sel_GetCorrelativoDeVisita_By_VisitaAndDate2]"
                SqlCmd.CommandType = CommandType.StoredProcedure
                SqlCmd.Parameters.AddWithValue("@str_NumDocumentoDeVisitaEspecial", txtDNI.Text)
                SqlCmd.Parameters.AddWithValue("@dtm_FecVisita", dtpFecha.SelectedDate)
                SqlCon.Open()

                Dim Result As Object = SqlCmd.ExecuteScalar
                If Not IsNothing(Result) Then
                    MsgBox("ya esta registrado")
                Else
                    GuardarVisitaEspecial()
                End If
                SqlCmd.Parameters.Clear()
                SqlCon.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

        End Sub
        Sub GuardarVisitaEspecial()
            SqlCon = New SqlConnection(connectionString)
            SqlCmd.Connection = SqlCon
            SqlCmd.CommandText = "sp_InsUpd_tbl_VisitasEspeciales"
            SqlCmd.CommandType = CommandType.StoredProcedure
            SqlCmd.Parameters.AddWithValue("@dtm_FecVisitaEspecial", dtpFecha.SelectedDate.Value)
            SqlCmd.Parameters.AddWithValue("@ID_TipoDeVisitaEspecial", cboTipo.SelectedValue)
            SqlCmd.Parameters.AddWithValue("@ID_DestinoDeVisitaEspecial", cboDestino.SelectedValue)
            SqlCmd.Parameters.AddWithValue("@str_ObservacionesDeVisitaEspecial", txtobservacion.Text)
            SqlCmd.Parameters.AddWithValue("@ID_RegistradoPor", 11)
            Dim param As SqlParameter = SqlCmd.Parameters.Add("@lng_CodigoGenerado", SqlDbType.Int)
            param.Direction = ParameterDirection.Output
            ' Abrimos la conexión
            SqlCon.Open()
            Try
                If rbSeleccionarInterno.IsChecked = True Then
                    Dim n As Integer = SqlCmd.ExecuteNonQuery()
                    Dim value As Object = SqlCmd.Parameters("@lng_CodigoGenerado").Value
                    If (Not (value Is DBNull.Value)) Then
                        CRUD.intCorrelativo = Convert.ToString(value)
                    End If
                    SqlCmd.Parameters.Clear()
                    SqlCon.Close()
                    ObtenerIDVisitaEspecial()
                    GuardarVisitanteIngreso()
                    GuardarInternosIngreso()
                Else
                    Dim n As Integer = SqlCmd.ExecuteNonQuery()
                    Dim value As Object = SqlCmd.Parameters("@lng_CodigoGenerado").Value
                    If (Not (value Is DBNull.Value)) Then
                        CRUD.intCorrelativo = Convert.ToString(value)
                    End If
                    SqlCmd.Parameters.Clear()
                    SqlCon.Close()
                    ObtenerIDVisitaEspecial()
                    GuardarVisitanteIngreso()
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message.ToString())
            End Try
        End Sub

    viernes, 15 de junio de 2018 21:32

Respuestas

  • No hay nada "obvio" en el código que pueda hacer que no grabe en base de datos. Tendrás que seguirlo paso a paso con el debugger hasta ver si efectivamente alcanza la línea donde ejecutas el procedimiento almacenado que realiza la grabación, y en ese punto usar el debugger para validar si los parámetros que se le pasan son los correctos. Suponiendo que lo sean, llama a mano al procedimiento desde SSMS con esos mismos parámetros para comprobar si graba correctamente, no vaya a ser que el error se encuentre dentro del procedimiento. Insisto en que tienen que ser los mismos parámetros capturados con el debugger, la prueba no sería correcta si la hicieses con los valores que crees que tienen los parámetros.
    sábado, 16 de junio de 2018 7:42