Hola a todos espero me puedan ayudar, estoy una actualización de registros desde C# asciendo unos de una función , pero al momento de actualizar no realiza la actualización desde c# , pero en el transac del postgresql si lo hace la actualización del registro. acá les dejo el código que echo, de antemano agradezco a sus respuestas
Código SQL:
Ver originalCREATE TABLE ALMACEN.TIPO_ALMACEN
(
IDTIPO_ALMACEN CHAR(4) NOT NULL ,
DESCRIPCION VARCHAR(30) NULL ,
ABREV VARCHAR(10) NULL ,
ESTADO CHAR(1) NULL
)
CREATE OR REPLACE FUNCTION Update_Tipo_almacen(item_id CHAR(4),descrip VARCHAR(30),desc_abrev CHAR(10),std CHAR(1))
RETURNS void AS
$BODY$
DECLARE
-- loc_result CHAR(50);
BEGIN
UPDATE ALMACEN.TIPO_ALMACEN
SET
DESCRIPCION = descrip,
ABREV = desc_abrev,
ESTADO = std
WHERE IDTIPO_ALMACEN = item_id;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Código VB:
Ver originalNpgsqlCommand Exec;
public int ActualizarRegistro(LayerIdentidad.Almacen.Almacen.IdTipAlmacen IdCls)
{
SIGConnection.OpenConnection();
Exec = new NpgsqlCommand("Update_Tipo_almacen", SIGConnection.Connection);
Exec.CommandType = CommandType.StoredProcedure;
Exec.Parameters.Add(":item_id", NpgsqlTypes.NpgsqlDbType.Char, 4).Value = IdCls.IdReg;
Exec.Parameters.Add(":descrip", NpgsqlTypes.NpgsqlDbType.Varchar, 30).Value = IdCls.Descripcion;
Exec.Parameters.Add(":desc_abrev", NpgsqlTypes.NpgsqlDbType.Varchar, 10).Value = IdCls.Desc_avreiada;
Exec.Parameters.Add(":std", NpgsqlTypes.NpgsqlDbType.Char, 1).Value = IdCls.Estado;
// Exec.Parameters.Add(":existe:", NpgsqlTypes.NpgsqlDbType.Boolean).Direction = ParameterDirection.Output;
try
{
Res = Exec.ExecuteNonQuery();
}
catch (Exception) { }
finally
{
Exec.Dispose();
SIGConnection.CloseConnection();
}
return Res;
public int ActualizarRegistro(LayerIdentidad.Almacen.Almacen.IdTipAlmacen IdCls)
{
return data.ActualizarRegistro(IdCls);
}
LayerLogic.Almacen.Almacen.LogTipAlmacen Log1 = new LayerLogic.Almacen.Almacen.LogTipAlmacen();
LayerIdentidad.Almacen.Almacen.IdTipAlmacen Id1 = new LayerIdentidad.Almacen.Almacen.IdTipAlmacen();
Id1.IdReg = TxtId.Text;
Id1.Descripcion = TxtDesc.Text;
Id1.Desc_avreiada = TxtDesAbr.Text;
Id1.Estado = "0";
MessageBox.Show(Log1.ActualizarRegistro(Id1).ToString ());
if (Log1.ActualizarRegistro(Id1) == 1)
{
Utilidades.MensajeOk("Registrado Actualizado Correctamente");
}
else
{
Utilidades.MensajeAlerta("Error. En la Actualización de Datos.");
}
}