none
Valores desfasados con la base de datos RRS feed

  • Pregunta

  • Hola, resulta que realizo una inserseccion en la BD y acto seguido, hago una consulta para obtener el máximo de una columna de la tabla en la que he insertado. Exactamente es para saber con que id lo ha insertado. Y a la base de datos no le da tiempo a actualizarse y me devuelve el valor anterior. Que puedo hacer para solucionarlo.
    jueves, 10 de febrero de 2011 17:04

Respuestas

Todas las respuestas

  • hola

    estas realizando esto dentro de una transaccion ?

    si es asi prueba de confirmar la misma y luego consulta el id

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 10 de febrero de 2011 17:06
  • //esto devuelve el numero de filas afectadasaux= bd.bdComprasConexionInsertInt(query);

    if(aux>0)

    {

                                bd = new BdOpciones();

                               //selecciono el Id maximo

                                ds = bd.bdComprasConexion("SELECT MAX(idPermisoN" + tablaBD + ") FROM tbPermisosN" + tablaBD);
                                if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                                {


                                  //añado el valor

                                 nodes[i].Tag = (int.Parse(ds.Tables[0].Rows[0][0].ToString())+1).ToString();
                                }

    una veces lo hace bien y otros mal, dependiendo del numero de inserciones

    }

    jueves, 10 de febrero de 2011 17:43
  • hola

    porque usas el

    MAX(idPermisoN" + tablaBD + ")

    para obtener el maximo de un campo, parecier aque es un metodo generico

     

    ademas para suar el max deberias aplciar el ExecuteScalar() no devolver un dataset

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 10 de febrero de 2011 17:49