disculpen mi ignorancia soy algo nuevo en esto
Desde ya gracias
El codigo en el formulario
Código:
#Region "para modificar"
Private Function dt_modificar() As DataTable
Dim myDataTable As DataTable = New DataTable()
Dim myDataColumn As DataColumn
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "cod_empresa"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "nro_perfil"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "fecha_creacion"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "cod_persona"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "nro_matricula"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "usr_alta"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "usr_modif"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "fec_modif"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "observacion"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "carga_operacion"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "tipo_documento"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = Type.GetType("System.String" )
myDataColumn.ColumnName = "nro_documento"
myDataTable.Columns.Add(myDataColumn)
Return myDataTable
End Function
Private Function add_dt_modificar(ByVal cod_empresa As String, ByVal nro_perfil As String, ByVal cod_persona As String, ByVal nro_matricula As String, ByVal usr_modif As String, ByVal fec_modif As Date, ByVal observacion As String, ByVal carga_operacion As String, ByVal tipo_documento As String, ByVal nro_documento As String, ByVal myTable As DataTable)
Dim row As DataRow
row = myTable.NewRow()
row("cod_empresa" ) = cod_empresa
row("nro_perfil" ) = nro_perfil
row("cod_persona" ) = cod_persona
row("nro_matricula" ) = nro_matricula
row("usr_modif" ) = usr_modif
row("fec_modif" ) = fec_modif
row("observacion" ) = observacion
row("carga_operacion" ) = carga_operacion
row("tipo_documento" ) = tipo_documento
row("nro_documento" ) = nro_documento
myTable.Rows.Add(row)
Return 0
End Function
Private Sub CargarTablaActualizar()
If txt_nro_perfil.Text <> String.Empty And txt_cod_persona.Text <> String.Empty And txt_nro_matricula.Text <> String.Empty And txt_observacion.Text <> String.Empty And txt_carga_operacion.Text <> String.Empty And cb_tipo_documento.SelectedValue <> String.Empty And txt_nro_documento.Text <> String.Empty And My.Settings.validacion = 3 Then
Dim va As Boolean = False
If para_modificar.Rows.Count < -1 Then
add_dt_modificar(My.Settings.cod_empresa.Trim(), Me.txt_nro_perfil.Text.Trim(), Me.txt_cod_persona.Text.Trim(), Me.txt_nro_matricula.Text.Trim(), Me.txt_usr_modif.Text.Trim(), Me.txt_fec_modif.Text.Trim(), Me.txt_observacion.Text.Trim(), Me.txt_carga_operacion.Text.Trim(), Me.cb_tipo_documento.SelectedValue.ToString(), Me.txt_nro_documento.Text.Trim(), para_modificar)
Else
For i = 0 To para_modificar.Rows.Count - 1
If va = False Then
If para_modificar.Rows(i)("nro_perfil" ).ToString() = txt_nro_perfil.Text Then
para_modificar.Rows(i)("cod_persona" ) = txt_cod_persona.Text
para_modificar.Rows(i)("nro_matricula" ) = txt_nro_matricula.Text
para_modificar.Rows(i)("usr_modif" ) = txt_usr_modif.Text
para_modificar.Rows(i)("fec_modif" ) = txt_fec_modif.Text
para_modificar.Rows(i)("observacion" ) = txt_observacion.Text
para_modificar.Rows(i)("carga_operacion" ) = txt_carga_operacion.Text
para_modificar.Rows(i)("tipo_documento" ) = cb_tipo_documento.SelectedValue
para_modificar.Rows(i)("nro_documento" ) = txt_nro_documento.Text
va = True
End If
End If
Next
If va = False Then
add_dt_modificar(My.Settings.cod_empresa.Trim(), Me.txt_nro_perfil.Text.Trim(), Me.txt_cod_persona.Text.Trim(), Me.txt_nro_matricula.Text.Trim(), Me.txt_usr_modif.Text.Trim(), Me.txt_fec_modif.Text.Trim(), Me.txt_observacion.Text.Trim(), Me.txt_carga_operacion.Text.Trim(), Me.cb_tipo_documento.SelectedValue, Me.txt_nro_documento.Text.Trim(), para_modificar)
End If
End If
End If
End Sub
#End Region
' El proceso de guardar
ElseIf para_modificar.Rows.Count - 1 > -1 Or My.Settings.validacion = 3 Then
Try
Dim listas As List(Of ClassLibrary1.DLL.ClsSysDate) = SqlBSPERSOC.SysData()
txt_usr_modif.Text = My.Settings.cod_usuario
txt_fec_modif.DataBindings.Clear()
txt_fec_modif.DataBindings.Add("Text", listas, "mSysDate" )
Actualizar()
mensaje()
My.Settings.validacion = 0
txt_nro_perfil.Text = String.Empty
CargarDatos()
Catch ex As Exception
para_modificar.Rows.Clear()
End Try
End If
'en todos los casos
txt_nro_perfil.Focus()
End Sub
' El Sub actualizar
Private Sub Actualizar()
Dim lista As String = ClassLibrary1.DAL.DataAccess.SqlPermisos.Pre_Update(My.Settings.vderecho)
If Not lista.Equals("S", StringComparison.OrdinalIgnoreCase) Then
MessageBox.Show(lista.ToString, "Problemas de Permiso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)
Else
Try
For i = 0 To para_modificar.Rows.Count - 1
SqlBSPERSOC.Modificar(My.Settings.cod_empresa, para_modificar.Rows(i)("nro_perfil" ).ToString, para_modificar.Rows(i)("cod_persona" ).ToString, para_modificar.Rows(i)("nro_matricula" ).ToString, para_modificar.Rows(i)("usr_modif" ).ToString, para_modificar.Rows(i)("fec_modif" ).ToString, para_modificar.Rows(i)("observacion" ).ToString, para_modificar.Rows(i)("carga_operacion" ).ToString, para_modificar.Rows(i)("tipo_documento" ).ToString, para_modificar.Rows(i)("nro_documento" ).ToString)
Next
para_modificar.Rows.Clear()
Catch ex As Exception
Throw New Exception
End Try
End If
End Sub
El Sql
Código:
#Region "Modificar"
Public Shared Function Modificar(ByVal cod_empresa As String, ByVal nro_perfil As String, ByVal cod_persona As String, ByVal nro_matricula As String, ByVal usr_modif As String, ByVal fec_modif As Date, ByVal observacion As String, ByVal carga_operacion As String, ByVal tipo_documento As String, ByVal nro_documento As String) As Integer
Dim filas As Integer = 0
Try
Dim cmd As New OracleCommand("PKG_BASE.MBSPERSOC", conn)
cmd.Parameters.Add("p_cod_empresa", cod_empresa)
cmd.Parameters.Add("p_nro_perfil", nro_perfil)
cmd.Parameters.Add("p_cod_persona", cod_persona)
cmd.Parameters.Add("p_nro_matricula", nro_matricula)
cmd.Parameters.Add("p_usr_modif", usr_modif)
cmd.Parameters.Add("p_fec_modif", fec_modif)
cmd.Parameters.Add("p_observacion", observacion)
cmd.Parameters.Add("p_carga_operacion", carga_operacion)
cmd.Parameters.Add("p_tipo_documento", tipo_documento)
cmd.Parameters.Add("p_nro_documento", nro_documento)
cmd.Parameters.Add(New OracleParameter("p_mensaje", OracleDbType.NVarchar2, ParameterDirection.Output, "", ParameterDirection.Output))
cmd.CommandType = CommandType.StoredProcedure
conn.Open()
filas = cmd.ExecuteNonQuery()
If (conn.State <> ConnectionState.Closed) Then
conn.Close()
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error en Actualización", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
conn.Close()
Throw New Exception
Finally
End Try
Return filas
End Function
#End Region
El Cls
Código:
Namespace DLL
Public Class ClsBSPERSOC
Dim f As Nullable(Of Date)
Private cod_empresa As String
Private nro_perfil As String
Private fecha_creacion As Date
Private cod_persona As String
Private nro_matricula As String
Private usr_alta As String
Private usr_modif As String
Private fec_modif As Date
Private observacion As String
Private carga_operacion As String
Private tipo_documento As String
Private nro_documento As String
Public Property mcod_empresa()
Get
Return cod_empresa
End Get
Set(ByVal value)
cod_empresa = value
End Set
End Property
Public Property mnro_perfil()
Get
Return nro_perfil
End Get
Set(ByVal value)
nro_perfil = value
End Set
End Property
Public Property mfecha_creacion()
Get
Return If(fecha_creacion.ToString("dd/MM/yyyy" ) = "01/01/0001", f.ToString, fecha_creacion.ToString("dd/MM/yyyy" ))
End Get
Set(ByVal value)
fecha_creacion = value
End Set
End Property
Public Property mcod_persona()
Get
Return cod_persona
End Get
Set(ByVal value)
cod_persona = value
End Set
End Property
Public Property mnro_matricula()
Get
Return nro_matricula
End Get
Set(ByVal value)
nro_matricula = value
End Set
End Property
Public Property musr_alta()
Get
Return usr_alta
End Get
Set(ByVal value)
usr_alta = value
End Set
End Property
Public Property musr_modif()
Get
Return usr_modif
End Get
Set(ByVal value)
usr_modif = value
End Set
End Property
Public Property mfec_modif()
Get
Return If(fec_modif.ToString("dd/MM/yyyy" ) = "01/01/0001", f.ToString, fec_modif.ToString("dd/MM/yyyy" ))
End Get
Set(ByVal value)
fec_modif = value
End Set
End Property
Public Property mobservacion()
Get
Return observacion
End Get
Set(ByVal value)
observacion = value
End Set
End Property
Public Property mcarga_operacion()
Get
Return carga_operacion
End Get
Set(ByVal value)
carga_operacion = value
End Set
End Property
Public Property mtipo_documento()
Get
Return tipo_documento
End Get
Set(ByVal value)
tipo_documento = value
End Set
End Property
Public Property mnro_documento()
Get
Return nro_documento
End Get
Set(ByVal value)
nro_documento = value
End Set
End Property
Sub New()
fecha_creacion = Now()
End Sub
Sub New(ByVal cod_empresa As String, ByVal nro_perfil As String, ByVal fecha_creacion As String, ByVal cod_persona As String, ByVal nro_matricula As String, ByVal usr_alta As String, ByVal usr_modif As String, ByVal fec_modif As String, ByVal observacion As String, ByVal carga_operacion As String, ByVal tipo_documento As String, ByVal nro_documento As String)
Me.cod_empresa = cod_empresa
Me.nro_perfil = nro_perfil
Me.fecha_creacion = fecha_creacion
Me.cod_persona = cod_persona
Me.nro_matricula = nro_matricula
Me.usr_alta = usr_alta
Me.usr_modif = usr_modif
Me.fec_modif = fec_modif
Me.observacion = observacion
Me.carga_operacion = carga_operacion
Me.tipo_documento = tipo_documento
Me.nro_documento = nro_documento
End Sub
End Class
End Namespace
El Procedure del PL/SQL
Código:
Procedure MBSPERSOC( p_cod_empresa in Varchar2,
p_nro_perfil in Number,
p_cod_persona in Varchar2,
p_nro_matricula in Varchar2,
p_usr_modif in Varchar2,
p_fec_modif in Date,
p_observacion in Varchar2,
p_carga_operacion in Varchar2,
p_tipo_documento in Varchar2,
p_nro_documento in Varchar2,
p_mensaje Out Varchar2) Is
vcod_empresa Varchar2(5) := p_cod_empresa;
vnro_perfil Number := p_nro_perfil;
vcod_persona Varchar2(15) := p_cod_persona;
vnro_matricula Varchar2(15) := p_nro_matricula;
vusr_modif Varchar2(40) := p_usr_modif;
vfec_modif Date := p_fec_modif;
vobservacion Varchar2(1000) := p_observacion;
vcarga_operacion Varchar2(1) := p_carga_operacion;
vtipo_documento Varchar2(1) := p_tipo_documento;
vnro_documento Varchar2(15) := p_nro_documento;
Begin
Update BS_PERFIL_CABECERA
Set cod_persona = vcod_persona,
nro_matricula = vnro_matricula,
usr_modif = vusr_modif,
fec_modif = vfec_modif,
observacion = vobservacion,
carga_operacion = vcarga_operacion,
tipo_documento = vtipo_documento,
nro_documento = vnro_documento
Where cod_empresa = vcod_empresa and nro_perfil = vnro_perfil;
If sql%Rowcount = 0 Then
p_mensaje := ('No se ha actualizado ningún registro. ');
Rollback;
End If;
Exception
When Others Then
p_mensaje := ('Error durante la actualización del registro. '||Sqlerrm);
End;