hola Yo otra vez con mis preguntas de Visual Basic 2012, esta vez tengo un problema con mi botón de agregar, tengo que decir que lo que quiero es hacerlo y como es lógico, que no haya cabida a errores, este es mi código:
''BOTON NUEVO REGISTRO''-----------------Error, solo envia el ultimo try
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Cod_puestoTextBox.Text = Text And Nom_puestoTextBox.Text = Text And Sal_nivel1TextBox.Text = Text And Sal_nivel2TextBox.Text = Text And Sal_nivel3TextBox.Text = Text And Sal_nivel4TextBox.Text = Text And Sal_nivel5TextBox.Text = Text Then
Me.Esc_SalarialTableAdapter.Insertar(Cod_puestoTextBox.Text, Nom_puestoTextBox.Text, Sal_nivel1TextBox.Text, Sal_nivel2TextBox.Text, Sal_nivel3TextBox.Text, Sal_nivel4TextBox.Text, Sal_nivel5TextBox.Text)
ElseIf Cod_puestoTextBox.Text = "" And Nom_puestoTextBox.Text = "" And Sal_nivel1TextBox.Text = "" And Sal_nivel2TextBox.Text = "" And Sal_nivel3TextBox.Text = "" And Sal_nivel4TextBox.Text = "" And Sal_nivel5TextBox.Text = "" Then
Try
Esc_SalarialDataGridView.Update()
MsgBox("Debe insertar los datos requeridos.")
Esc_SalarialTableAdapter.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
Try
Esc_SalarialDataGridView.Update()
MsgBox("Inserte todos los datos.")
Esc_SalarialTableAdapter.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)
Me.BindingContext(Esc_SalarialBindingSource).Position =
Me.BindingContext(Esc_SalarialBindingSource).Count - 1
Esc_SalarialDataGridView.Text = Me.BindingContext(Esc_SalarialBindingSource).Position
End Sub
y lo que me acongoja esque a mi parecer esta bien pero obviamente no lo esta porque el programa no agrega, bueno, voy a explicar de forma simple cada parte del código para q me entiendan.
Este es el primer IF que según yo, dice q si en todos los textbox hay textos(valga la redundancia) pues que los agregue a las columnas respectivas:
If Cod_puestoTextBox.Text = Text And Nom_puestoTextBox.Text = Text And Sal_nivel1TextBox.Text = Text And Sal_nivel2TextBox.Text = Text And Sal_nivel3TextBox.Text = Text And Sal_nivel4TextBox.Text = Text And Sal_nivel5TextBox.Text = Text Then
Me.Esc_SalarialTableAdapter.Insertar(Cod_puestoTextBox.Text, Nom_puestoTextBox.Text, Sal_nivel1TextBox.Text, Sal_nivel2TextBox.Text, Sal_nivel3TextBox.Text, Sal_nivel4TextBox.Text, Sal_nivel5TextBox.Text)
El siguiente es el primer Elseif, lo hize asi para solucionar el error que daba si usaba el botón sin agregar datos, lo que hace esque si no hay datos en ningún textbox envía un msj:
ElseIf Cod_puestoTextBox.Text = "" And Nom_puestoTextBox.Text = "" And Sal_nivel1TextBox.Text = "" And Sal_nivel2TextBox.Text = "" And Sal_nivel3TextBox.Text = "" And Sal_nivel4TextBox.Text = "" And Sal_nivel5TextBox.Text = "" Then
Try
Esc_SalarialDataGridView.Update()
MsgBox("Debe insertar los datos requeridos.")
Esc_SalarialTableAdapter.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Este es el Else (por cierto acá cierra el ciclo If), ya con los anteriores le e dicho al programa que debe hacer en caso de que tenga toda la información en los txtbox, y que hacer en caso que no le escriban nada; sin embargo da un error si se inserta texto en algún txtbox y nada en otros, evitar ese error es mi objetivo con este Else:
Else
Try
Esc_SalarialDataGridView.Update()
MsgBox("Inserte todos los datos.")
Esc_SalarialTableAdapter.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
A mi parecer el programa debería interpretar esto de esta manera" si tengo todos los datos, los agrego al datagridview; si no tengo nada, entonces envío un msj, y si no se da el primer caso ni el segundo, pues hago el tercero q es enviar otro msj, porque si no es gallo es gallina"
No le e indicado al programa específicamente que haga el Else en caso que hayan algunos datos en txtsbox y en otros no, pero debería funcionar bien creo yo, pero no es asi, si yo pruebo el programa, y no agrego nada a los texbox al tocar el botn hace lo q deberia hacer, si lo pruebo de nuevo y agrego informacion en algun texbox y en otro(s) no; también hace lo q debe hacer...osea que el segundo y tercer caso funcionan bien, pero si agrego información a todos los textbox y toco el botón me tira el msj como si no estuviese agregando a todos, osea se da el tercer caso y eso no tiene sentido
El resto de código que no explique es para actualizar y mantener la ultima posición, pero si funciona bien esa parte
Gracias por tomarse el tiempo de leer este tema y si me pueden ayudar lo agradecería mucho, espero haberme explicado bien
Saludos !!