none
Problema con OleDbParameter RRS feed

  • Pregunta

  • Pego el método y explico mi problema y como de momento estoy solucionando el problema.
    string updateSQL = "UPDATE producto SET barr_bult = ?,barr_uni = ?, neto_bulto = ? WHERE  rub_cod = ?";
                    OleDbCommand updateCMD = new OleDbCommand(updateSQL, miConnectionAlma);
                    updateCMD.Parameters.Add("@rub_cod", OleDbType.Char).Value = filaModificar["rub_cod"].ToString().Trim();
                    updateCMD.Parameters.Add("@barr_bult", OleDbType.Char).Value = filaModificar["barr_bult"];
                    updateCMD.Parameters.Add("@barr_uni", OleDbType.Char).Value = filaModificar["barr_uni"];
                    // el problema es aca.
                    updateCMD.Parameters.Add("@neto_bulto", OleDbType.Currency).Value =filaModificar["neto_bulto"];
    La base de datos esta en .dbf, y estoy haciendo la solución de varios update sobre una misma tabla.
    El error es el siguiente "Operator/operand type mismatch."
    La solucion paso un query combinado,
    string updateSQL = "UPDATE producto SET barr_bult = ?,barr_uni = ?, neto_bulto = '" + filaModificar["neto_bulto"].ToString() + "' WHERE  rub_cod = ?";
    pero me gustaria saber como poder solucionar, ya que cuando el tipo es distinto de Char, surge este tipo de problema.
    un saludo y desde ya gracias.

    Luis Salvarezza
    jueves, 28 de julio de 2011 14:54

Respuestas

  • puedes saber en que linea marca el problema ?

    algo que noto es que el orden es importante, si defines ? porque luego pones @ con un nombre

    string updateSQL = "UPDATE producto SET barr_bult = ?,barr_uni = ?, neto_bulto = ? WHERE rub_cod = ?";
    OleDbCommand updateCMD = new OleDbCommand(updateSQL, miConnectionAlma);
    
    updateCMD.Parameters.Add("?", OleDbType.Char).Value = filaModificar["barr_bult"].ToString();
    updateCMD.Parameters.Add("?", OleDbType.Char).Value = filaModificar["barr_uni"].ToString();
    updateCMD.Parameters.Add("?", OleDbType.Char).Value = filaModificar["rub_cod"].ToString().Trim();
    

    o sino en el Paramters.Add() directo sin nombre

    recuerda el orden es improtante

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 28 de julio de 2011 15:15

Todas las respuestas

  • puedes saber en que linea marca el problema ?

    algo que noto es que el orden es importante, si defines ? porque luego pones @ con un nombre

    string updateSQL = "UPDATE producto SET barr_bult = ?,barr_uni = ?, neto_bulto = ? WHERE rub_cod = ?";
    OleDbCommand updateCMD = new OleDbCommand(updateSQL, miConnectionAlma);
    
    updateCMD.Parameters.Add("?", OleDbType.Char).Value = filaModificar["barr_bult"].ToString();
    updateCMD.Parameters.Add("?", OleDbType.Char).Value = filaModificar["barr_uni"].ToString();
    updateCMD.Parameters.Add("?", OleDbType.Char).Value = filaModificar["rub_cod"].ToString().Trim();
    

    o sino en el Paramters.Add() directo sin nombre

    recuerda el orden es improtante

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 28 de julio de 2011 15:15
  • Perfecto leandro voy a probar lo que me decís, muchas gracias.
    Luis Salvarezza
    jueves, 28 de julio de 2011 15:22