none
Introducir datos a Access desde C# (Duda Formula) RRS feed

  • Pregunta

  • Buenas a todos;

    hoy mi pregunta es sobre una formula para intriducir un valor a una tabla de una base de datos access desde C#

    ESTOY TRABAJANDO CON:

    - C# (Visual Studio 2010)

    - OleDB (Base de datos Access)

    - dos variables (una numérica otra de texto)

    NECESITO:

    Querria introducir el contenido de la variable de texto "estado" en una columna vacia de una tabla con contenido. Es decir:

    • Tengo una tabla de Access que relleno en un paso anterior pero dejando una columna vacia.
    • Quiero introducir el contenido de la variable "estado" en un campo de la columna "Estado" en la tabla de Access.
    • Debe introducirse en el registro en el que el valor de la columna "numAveria" coincida con el valor de la variable numérica "numAveria".

    Como sería la formula para ello?

    Se la parte de OledbCommand y supongo que sera con INSERT INTO y algun WHERE pero no consigo escribirla correctamente y me he visto obligado a preguntar por aqui

    Saludos


    Mikel García
    Pamplona, Navarra (España)
    No es mas rico el que mas tiene si no el que menos necesita - Agustin de Hipona

    martes, 1 de julio de 2014 8:42

Respuestas

  • hola

    recuerda usar parametros, eso de unir en un string el valor del estado no es aconsejable

    string query = "UPDATE AveriasActivas SET AveriasActivas.[Estado] = @estado WHERE (((AveriasActivas.[numAveria])= @numAveria))";
    
    OleDbCommand cmdAverias = new OleDbCommand(query, conexion);
    
    cmdAverias.Parameters.AddWithValue("@estado", estado);
    
    cmdAverias.Parameters.AddWithValue("@numAveria", numAveria);

    usando parametros es la forma correcta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Mikel García miércoles, 2 de julio de 2014 10:15
    martes, 1 de julio de 2014 11:20
  • Buenas,

    he conseguido solucionarlo con el simple hecho de crear una consulta con asistente en access. Un simple metodo que siempre te puede salvar de algun apuro.

    os lo dejo.

    using (OleDbCommand cmdAverias = new OleDbCommand("UPDATE AveriasActivas SET AveriasActivas.[Estado] = '" + estado + "' WHERE (((AveriasActivas.[numAveria])=" + numAveria + "))", conexion))
    Saludos


    Mikel García
    Pamplona, Navarra (España)
    No es mas rico el que mas tiene si no el que menos necesita - Agustin de Hipona

    • Marcado como respuesta Mikel García martes, 1 de julio de 2014 10:14
    martes, 1 de julio de 2014 10:14

Todas las respuestas

  • Hola Mikel, por expreincia te digo que insertar datos en Access es un poco complejo, sobre todo porque los formatos que recibe Access son algo distintos a lo que más acostumbrados estamos (SQL Server).

    Compará muy bien los datos de destino y depurá para ver exactamente qué consulta estás ejecutando en Access.

    Mirá esto

    Salu2

    martes, 1 de julio de 2014 9:32
  • Buenas,

    he conseguido solucionarlo con el simple hecho de crear una consulta con asistente en access. Un simple metodo que siempre te puede salvar de algun apuro.

    os lo dejo.

    using (OleDbCommand cmdAverias = new OleDbCommand("UPDATE AveriasActivas SET AveriasActivas.[Estado] = '" + estado + "' WHERE (((AveriasActivas.[numAveria])=" + numAveria + "))", conexion))
    Saludos


    Mikel García
    Pamplona, Navarra (España)
    No es mas rico el que mas tiene si no el que menos necesita - Agustin de Hipona

    • Marcado como respuesta Mikel García martes, 1 de julio de 2014 10:14
    martes, 1 de julio de 2014 10:14
  • hola

    recuerda usar parametros, eso de unir en un string el valor del estado no es aconsejable

    string query = "UPDATE AveriasActivas SET AveriasActivas.[Estado] = @estado WHERE (((AveriasActivas.[numAveria])= @numAveria))";
    
    OleDbCommand cmdAverias = new OleDbCommand(query, conexion);
    
    cmdAverias.Parameters.AddWithValue("@estado", estado);
    
    cmdAverias.Parameters.AddWithValue("@numAveria", numAveria);

    usando parametros es la forma correcta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Mikel García miércoles, 2 de julio de 2014 10:15
    martes, 1 de julio de 2014 11:20
  • De acuerdo gracias por el consejo Leandro, intentare aplicarlo siempre que pueda

    Saludos


    Mikel García
    Pamplona, Navarra (España)
    No es mas rico el que mas tiene si no el que menos necesita - Agustin de Hipona

    miércoles, 2 de julio de 2014 10:15