none
ERROR EN INSERT MYSQL VB.NET2010 RRS feed

  • Pregunta

  • ALGUIEN ME DA UNA AYUDITA CON EL ERROR POR FAVOR???

    VA EL CODIGO

     Dim con As New MySqlConnection

            Dim comando As New MySqlCommand

            con.ConnectionString = "server=localhost; user id=root; password= ;database=****"

            comando.Connection = con
            comando.CommandType = CommandType.Text
            comando.CommandText = "INSERT INTO alumnos (dni, Apellido, Nombre, Direccion, CodigoPostal, Localidad, Telefono, Celular, Email, FecNac, FecAlta, Curso, cod_curso, Comision)" & "VALUES (?dni, ?Apellido, ?Nombre, ?Direccion, ?Barrio, ?CodigoPostal, ?Localidad, ?Telefono, ?Celular, ?Email, ?FecNac, ?FecAlta, ?Curso, cod_curso, ?Comision)"

            comando.Parameters.Add(New MySqlParameter("?dni", Data.SqlDbType.VarChar, 9)).Value = MaskedTextBox3.Text
            comando.Parameters.Add(New MySqlParameter("?apellido", Data.SqlDbType.VarChar, 30)).Value = TextBox2.Text
            comando.Parameters.Add(New MySqlParameter("?nombre", Data.SqlDbType.VarChar, 50)).Value = TextBox3.Text
            comando.Parameters.Add(New MySqlParameter("?direccion", Data.SqlDbType.VarChar, 50)).Value = TextBox4.Text
            comando.Parameters.Add(New MySqlParameter("?localidad", Data.SqlDbType.VarChar, 30)).Value = TextBox5.Text
            comando.Parameters.Add(New MySqlParameter("?CodigoPostal", Data.SqlDbType.VarChar, 7)).Value = TextBox6.Text
            comando.Parameters.Add(New MySqlParameter("?telefono", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox4.Text
            comando.Parameters.Add(New MySqlParameter("?celular", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox5.Text
            comando.Parameters.Add(New MySqlParameter("?email", Data.SqlDbType.VarChar, 60)).Value = TextBox9.Text
            comando.Parameters.Add(New MySqlParameter("?FecNac", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox1.Text
            comando.Parameters.Add(New MySqlParameter("?FecAlta", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox2.Text
            comando.Parameters.Add(New MySqlParameter("?curso", Data.SqlDbType.VarChar, 30)).Value = ComboBox1.Text
            comando.Parameters.Add(New MySqlParameter("?cod_curso", Data.SqlDbType.VarChar, 5)).Value = ComboBox2.Text
            comando.Parameters.Add(New MySqlParameter("?comision", Data.SqlDbType.VarChar, 5)).Value = ComboBox3.Text


            con.Open()
            comando.ExecuteNonQuery()
            oDataAdapter.InsertCommand = comando
            con.Close()

            MsgBox("Datos Grabados", MsgBoxStyle.Information, "GRABADO")

    EL ERROR ES EN LA LINEA

    comando.ExecuteNonQuery()

    QUE DICE UNKNOWN DATA TYPE - NO SE CONTROLÓ MYSQL EXCEPTION

    • Cambiado Enrique M. Montejo viernes, 13 de julio de 2012 10:17 acceso a datos (De:Lenguaje VB.NET)
    martes, 10 de julio de 2012 7:32

Todas las respuestas

  • Hola Ariban,

    ¿Todas las columnas de tu tabla son de tipo Varchar?


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    TabControl con Mejoras

    martes, 10 de julio de 2012 7:58
    Moderador
  • Te falta la interrogación en cod_curso

    ?Curso, ?cod_curso, ?Comision 


    Saludos, Javier J

    martes, 10 de julio de 2012 8:03
  • Hola,

    otra cosa que veo es esto. Insertas en estos campos

    dni, Apellido, Nombre, Direccion, CodigoPostal, Localidad, Telefono, Celular, Email, FecNac, FecAlta, Curso, cod_curso, Comision (14)

    pero pasas estos valores

    ?dni, ?Apellido, ?Nombre, ?Direccion, ?Barrio, ?CodigoPostal, ?Localidad, ?Telefono, ?Celular, ?Email, ?FecNac, ?FecAlta, ?Curso, cod_curso, ?Comision (15)

    O se te ha olvidado o sobra el campo Barrio.


    Atentamente, Sergio.

    Blog
    Twitter

    • Propuesto como respuesta ARIELIBANEZ martes, 10 de julio de 2012 15:16
    martes, 10 de julio de 2012 8:09
  • Hola Ariban,

    ¿Todas las columnas de tu tabla son de tipo Varchar?


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    TabControl con Mejoras

    SI, SON VARCHAR, (DIME SI HAY TENGO QUE CAMBIAR DE VARCHAR A OTROS, SUGIEREME POR FAVOR A VER SI DEPURO EL CODIGO) YA CORREGÍ LO QUE DICEN LOS OTROS MENSAJES PERO ME SALE SIEMPRE EL MISMO ERROR, 
    martes, 10 de julio de 2012 15:19
  • Sigue el error, he corregido los datos pero sigue saliendo el error, PARA EL SEÑOR TORRECILLA, Dígame SI TENGO QUE CAMBIAR DE VARCHAR A OTROS, SUGIEREME POR FAVOR A VER SI DEPURO EL CÓDIGO.

            Dim con As New MySqlConnection
            Dim comando As New MySqlCommand

            con.ConnectionString = "server=localhost; user id=root; password= ;database=icset"

            comando.Connection = con
            comando.CommandType = CommandType.Text
            comando.CommandText = "INSERT INTO alumnos (dni, Apellido, Nombre, Direccion, CodigoPostal, Localidad, Telefono, Celular, Email, FecNac, FecAlta, Curso, cod_curso, Comision)" & "VALUES (?dni, ?Apellido, ?Nombre, ?Direccion, ?CodigoPostal, ?Localidad, ?Telefono, ?Celular, ?Email, ?FecNac, ?FecAlta, ?Curso, ?cod_curso, ?Comision)"

            comando.Parameters.Add(New MySqlParameter("?dni", Data.SqlDbType.VarChar, 9)).Value = MaskedTextBox3.Text
            comando.Parameters.Add(New MySqlParameter("?apellido", Data.SqlDbType.VarChar, 30)).Value = TextBox2.Text
            comando.Parameters.Add(New MySqlParameter("?nombre", Data.SqlDbType.VarChar, 50)).Value = TextBox3.Text
            comando.Parameters.Add(New MySqlParameter("?direccion", Data.SqlDbType.VarChar, 50)).Value = TextBox4.Text
            comando.Parameters.Add(New MySqlParameter("?localidad", Data.SqlDbType.VarChar, 30)).Value = TextBox5.Text
            comando.Parameters.Add(New MySqlParameter("?CodigoPostal", Data.SqlDbType.VarChar, 7)).Value = TextBox6.Text
            comando.Parameters.Add(New MySqlParameter("?telefono", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox4.Text
            comando.Parameters.Add(New MySqlParameter("?celular", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox5.Text
            comando.Parameters.Add(New MySqlParameter("?email", Data.SqlDbType.VarChar, 60)).Value = TextBox9.Text
            comando.Parameters.Add(New MySqlParameter("?FecNac", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox1.Text
            comando.Parameters.Add(New MySqlParameter("?FecAlta", Data.SqlDbType.VarChar, 20)).Value = MaskedTextBox2.Text
            comando.Parameters.Add(New MySqlParameter("?curso", Data.SqlDbType.VarChar, 30)).Value = ComboBox1.Text
            comando.Parameters.Add(New MySqlParameter("?cod_curso", Data.SqlDbType.VarChar, 5)).Value = ComboBox2.Text
            comando.Parameters.Add(New MySqlParameter("?comision", Data.SqlDbType.VarChar, 5)).Value = ComboBox3.Text


            con.Open()
            comando.ExecuteNonQuery()
            oDataAdapter.InsertCommand = comando
            con.Close()

            MsgBox("Datos Grabados", MsgBoxStyle.Information, "GRABADO")

    EL ERRO DICE

    comando.ExecuteNonQuery()

    QUE DICE UNKNOWN DATA TYPE - NO SE CONTROLÓ MYSQL EXCEPTION

    martes, 10 de julio de 2012 15:28
  • La verdad es que no tengo un MYSQL para hacer pruebas, 

    ¿Podrías cambiar las "?" por "@"?


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    TabControl con Mejoras

    martes, 10 de julio de 2012 15:41
    Moderador
  • Hola,

    tal y como te comenta Javier, puedes probar a cambiar las ? por @, tal y como se ve en la documentación de conector de MySql

    25.2.3.7. MySqlParameter

    Otra cosa que puede parece absurda, ¿estás seguro que todo los campos son en la base de datos de tipo varchar? ¿podrías pasarnos un esquema de la base de datos para estar seguros? Es que tener campos que se llaman FecNac y FecAlta que sean de tipo varchar queda un "poco raro".


    Atentamente, Sergio.

    Blog
    Twitter

    martes, 10 de julio de 2012 19:13