none
¿Por qué al insertar un dato de tipo double me genera este mensaje “valor incorrecto para cast”? RRS feed

  • Pregunta

  • Saludos, verán estoy utilizando una base de datos accdb en access. Y en los métodos creados en c# he declarado de tipo double el 'Precio' pero al momento de guardar en mi form me sale en siguiente error: “valor incorrecto para cast”. Se que algo anda mal con la definición de campos en la base de datos. 

    definición de campo en acess

     
    • Editado Henriquez10 miércoles, 30 de mayo de 2018 5:45
    miércoles, 30 de mayo de 2018 5:44

Todas las respuestas

  • Normalmente ese error sale cuando le envías a la base de datos un texto que la base de datos no reconoce como numérico. Ten en cuenta que la base de datos es muy estricta y no reconoce ciertas combinaciones que son legítimas en el código cliente. Por ejemplo, puede ser que le hayas puesto una coma decimal en lugar de usar un punto para los decimales, o que tenga puntos de miles, o que contenga un espacio en blanco, o algo similar.
    miércoles, 30 de mayo de 2018 6:43
    Moderador
  • hola

    Como asignas los valores desde codigo al insertar ?

    Ademas recuerda que el orden de los parametro es importante, a pesar que los asignes por nombre el orden debes respetarlo

    tu codigo deberia ser similar a esta estructura

    string SqlString = "Insert Into Contacts (FirstName, LastName) Values (?,?)";
    
    using (OleDbConnection conn = new OleDbConnection(ConnString))
    {
     
      using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
      {
        cmd.Parameters.AddWithValue("FirstName", txtFirstName.Text);
        cmd.Parameters.AddWithValue("LastName", txtLastName.Text);
     
        conn.Open();
     
        cmd.ExecuteNonQuery();
     
      }
     
    }

    veras como los parametros estan en orden

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 31 de mayo de 2018 5:47