none
Autoincrementar Primary key para introducir datos en bbdd mysql desde visual studio RRS feed

  • Pregunta

  • Buenas he aqui mi problema:

       Dim conexion As New MySqlConnection("Server=localhost;Database=grupomontes;Uid=....;Pwd=......;")
            Dim cn As New MySqlCommand("insert into clientes (id_clientes,razon_social,direccion,cp,localidad,poblacion,telefono,nif) values (max(id_clientes)+1 ,'" + txtrazonsocial.Text + "','" + txtdireccion.Text + "','" + txtcp.Text + "','" + txtpoblacion.Text + "','" + txtprovincia.Text + "','" + txttelefono.Text + "','" + txtnif.Text + "')", conexion)

            Try
                conexion.Open()
                cn.ExecuteNonQuery()
                MsgBox("Cliente creado correctamente")
            Catch ex As Exception
                MsgBox("Rellena todos los campos")
            Finally
                conexion.Close()
                txtcp.Text = ""
                txtdireccion.Text = ""
                txtncliente.Text = ""
                txtnif.Text = ""
                txtpoblacion.Text = ""
                txtprovincia.Text = ""
                txtrazonsocial.Text = ""
                txttelefono.Text = ""

            End Try

    Al ir dando de alta clientes el id_clientes debe de ir autoincrementandose solo. en la bbdd ya esta definido como autoincrementar.

    Como lo tengo que hacer.

    Es mi 1 trabajillo en esto.

    gracias

    jueves, 19 de abril de 2012 12:51

Todas las respuestas

  • Hola.

    Simplemente tienes que omitirlo del insert. Si está autoincremental en mysql, se hará de forma automática.

    Por lo tanto, tu comando sería algo como esto

    Dim cn As New MySqlCommand("insert into clientes (razon_social,direccion,cp,localidad,poblacion,telefono,nif) values ("'" + txtrazonsocial.Text + "','" + txtdireccion.Text + "','" + txtcp.Text + "','" + txtpoblacion.Text + "','" + txtprovincia.Text + "','" + txttelefono.Text + "','" + txtnif.Text + "')", conexion)


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    jueves, 19 de abril de 2012 13:36
  • revisa la respuesta que brindo aqui

    http://social.msdn.microsoft.com/Forums/es/vcses/thread/35ceb063-9908-4f69-9988-3cbcfdaa25b6

    http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/1d9499de-f452-4381-94b1-fff919d67d1d

    veras que el id si es autonumerico no debes ponerlo en la query

    este lo genera la tabla tu luego usas el

    SELECT LAST_INSERT_ID();

    para recuperar el id generado

    y por sobre todo usa parametros, los parametros en mysql los defines con el ? en sql server los defines con el @


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 19 de abril de 2012 13:44
  • Buenas,

    me quedo tal que asi:

     Dim conexion As New MySqlConnection("Server=localhost;Database=grupomontes;Uid=root;Pwd=;")
            Dim cn As New MySqlCommand("insert into clientes (razon_social,direccion,cp,localidad,poblacion,telefono,nif) values (?razon_social,?direccion,?cp,?localidad,?poblacion,?telefono,?nif)", conexion)

            cn.Parameters.AddWithValue("?razon_social", txtrazonsocial.Text)
            cn.Parameters.AddWithValue("?direccion", txtdireccion.Text)
            cn.Parameters.AddWithValue("?cp", txtcp.Text)
            cn.Parameters.AddWithValue("?localidad", txtpoblacion.Text)
            cn.Parameters.AddWithValue("?poblacion", txtprovincia.Text)
            cn.Parameters.AddWithValue("?telefono", txttelefono.Text)
            cn.Parameters.AddWithValue("?nif", txtnif.Text)

    Lo que pasa que tenia un cliente  de prueba que era el id=100 y ahora todo me los crea a partir de ahi. Los he borrado todos y creado uno nuevo pero continua por el 105,106,107...

    jueves, 19 de abril de 2012 14:27
  • Lo que pasa que tenia un cliente  de prueba que era el id=100 y ahora todo me los crea a partir de ahi. Los he borrado todos y creado uno nuevo pero continua por el 105,106,107...

    alquien sabe como solucionar esto para que empiece desde 0??

    viernes, 20 de abril de 2012 11:38