Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: katsumoto en 08 de Marzo 2016, 16:34
-
Hola mi problema es que voy rellenando los textbox uno a uno y si relleno todos bien graba perfectamente pero si dejo alguno en blanco no me lo graba y me dice lo siguiente: No coinciden los tipos de datos en la expresion de criterios.
Necesito poder dejar algun campo en blanco por que no siempre tengo todos los datos
El procedimiento es el siguiente:
Private Sub nueva_alta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nueva_alta.Click
' Verifico que haya escrito el dni (bueno, debería verificarlos todos, pero como esta es la clave principal...)
Dim fecha_nac = DateTimePicker1.Text
If t_dni.Text = "" Then
' Si no lo escribió, mando mensaje de error
MsgBox("Debe incluir un número Valido de DNI/NIE/PASAPORTE")
t_dni.Select()
Else
' Armo la instrucción INSERT en la variable SQL
sql = "INSERT INTO miembros_club (c_dni,c_nombre,c_apellidos,c_fecha_nac,c_edad) VALUES ('" & _
t_dni.Text & "','" & t_nombre.Text & "','" & t_apellidos.Text & "','" & fecha_nac & "','" & t_edad.Text & "')"
' Asigno la instrucción SQL que se va a ejecuta
comm.CommandText = sql
Try
comm.ExecuteNonQuery()
MsgBox("Registro Añadido con Exito")
t_dni.Select()
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Exclamation, "Gestion Integral Aikido")
End Try
End If
End Sub
-
Hola! Recuerda consultar este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 y seguir las indicaciones para pegar código
Pienso que el problema pueda venir de que cuando detecta un TextBox sin contenido en lugar de asignar una cadena vacía le asigne un contenido como NULL ó EMPTY o algo así, y por eso te salte el error. En concreto el error puede derivar de esta instrucción: Dim fecha_nac = DateTimePicker1.Text
Es posible que ahí si la fecha de nacimiento está vacía fecha_nac quede con un valor extraño y por eso te salte el error.
Prueba a mostrar los datos que se van a grabar para ver algo extraño por ejemplo con
msgBox ("Se va a grabar dni: " &t_dni.Text & " Nombre:" & t_nombre.Text & " Apellidos:" & t_apellidos.Text & "Fecha nacimiento" & fecha_nac & "Edad" & t_edad.Text)
Una vez veas dónde está el valor extraño puede corregirlo con un condicional que le diga que si tal campo tiene el valor extraño lo reemplace con una cadena vacía
Saludos!
-
Revisa el comando SQL, ese error sale cuando cuando queremos hacer un INSERT, UPDATE o DELETE. Es mas frecuente en el caso del UPDATE y DELETE. A mi me funciona bien usando parametros.
Luego ese parametro: @Identificacion lo defines en el parametro del comando sql:
Ejemplo:
dim sql as string
sql = "DELETE FROM Tabla1 WHERE Id= @Identificacion"
dim cmd as New OledbCommand(sql)
cmd.connection = cnn
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("@id", Identificacion)
Bueno así me funciono correctamente.