Problema con OdbcAdapter.Command
Publicado por CALLEJA RAMIREZ ALEJANDRA (1 intervención) el 14/06/2013 19:05:33
Hola tengo una clase que quiero que me sirva para agregar, modificar, eliminar datos de una tabla en Access, aparentemente a la hora de depurar me hace todo bien, no hay fallos, pero a la hora de comprobar si se ha modificado la base de datos veo que no ha contemplado nigún cambio.
Mi código es el siguiente:
Public Function agregarEmpleado(pNIFEmp As String, pApeNomEmp As String, pTelEmp As String, pMailEmp As String, pFKIdUnidad As Integer, pActivo As Boolean, pobservaciones As String) As Boolean
Dim dsEmpleado As DataSet
Dim daEmpleado As OdbcDataAdapter
daEmpleado = New OdbcDataAdapter("SELECT * FROM Empleados", cnGlobal)
dsEmpleado = New DataSet
daEmpleado.Fill(dsEmpleado)
dsEmpleado.Tables.Add("Empleados")
Dim dataTableEmpleado As New DataTable("Empleados")
Dim cm As OdbcCommand = New OdbcCommand("SELECT MAX(IdEmpleado) FROM Empleados", cnGlobal)
Dim MaxIdEmpleado As Long = CLng(cm.ExecuteScalar)
cm.Dispose()
daEmpleado.InsertCommand = New OdbcCommand("INSERT INTO EMPLEADOS(IdEmpleado,NIFEmp,ApeNomEmp,TelEmp,MailEmp,FkIdUnidad,Activo,Observaciones) VALUES(?,?,?,?,?,?,?,?)", cnGlobal)
daEmpleado.InsertCommand.Parameters.Add("@IdEmpleado", OdbcType.Int, 0, "IdEmpleado").Value = MaxIdEmpleado + 1
daEmpleado.InsertCommand.Parameters.Add("@NIFEmp", OdbcType.VarChar, 15, "NIFEmp").Value = pNIFEmp
daEmpleado.InsertCommand.Parameters.Add("@ApeNomEmp", OdbcType.VarChar, 100, "ApeNomEmp").Value = pApeNomEmp
daEmpleado.InsertCommand.Parameters.Add("@TelEmp", OdbcType.VarChar, 15, "TelEmp").Value = pTelEmp
daEmpleado.InsertCommand.Parameters.Add("@MailEmp", OdbcType.VarChar, 100, "MailEmp").Value = pMailEmp
daEmpleado.InsertCommand.Parameters.Add("@FkIdUnidad", OdbcType.Int, 0, "FkIdUnidad").Value = pFKIdUnidad
daEmpleado.InsertCommand.Parameters.Add("@Activo", OdbcType.Int, 1, "Activo").Value = pActivo
daEmpleado.InsertCommand.Parameters.Add("@Observaciones", OdbcType.VarChar, 255, "Observaciones").Value = pobservaciones
Try
daEmpleado.Fill(dataTableEmpleado)
Catch ex As Exception
Return False
End Try
Try
daEmpleado.Update(dataTableEmpleado)
dataTableEmpleado.AcceptChanges()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function modificarEmpleado(pIdEmpleado As Long, pNIFEmp As String, pApeNomEmp As String, pTelEmp As String, pMailEmp As String, pFKIdUnidad As Integer, pActivo As Boolean, pobservaciones As String) As Boolean
Dim dsEmpleado As DataSet
Dim daEmpleado As OdbcDataAdapter
daEmpleado = New OdbcDataAdapter("SELECT * FROM Empleados", cnGlobal)
dsEmpleado = New DataSet
daEmpleado.Fill(dsEmpleado)
dsEmpleado.Tables.Add("Empleados")
Dim dataTableEmpleado As New DataTable("Empleados")
daEmpleado.UpdateCommand = New OdbcCommand("UPDATE EMPLEADOS SET [IdEmpleado]=@IdEmpleado, [NIFEmp]=@NifEmp, [ApeNomEmp]=@ApeNomEmp,[TelEmp]=@TelEmp, [MailEmp]=@MailEmp, [FkIdUnidad]=@FKIdUnidad, [Activo]=@Activo,[Observaciones]=@observaciones", cnGlobal)
daEmpleado.UpdateCommand.Parameters.Add("@IdEmpleado", OdbcType.Int, 0, "IdEmpleado")
daEmpleado.UpdateCommand.Parameters.Add("@NIFEmp", OdbcType.VarChar, 15, "NIFEmp")
daEmpleado.UpdateCommand.Parameters.Add("@ApeNomEmp", OdbcType.VarChar, 100, "ApeNomEmp")
daEmpleado.UpdateCommand.Parameters.Add("@TelEmp", OdbcType.VarChar, 15, "TelEmp")
daEmpleado.UpdateCommand.Parameters.Add("@MailEmp", OdbcType.VarChar, 100, "MailEmp")
daEmpleado.UpdateCommand.Parameters.Add("@FkIdUnidad", OdbcType.Int, 0, "FkIdUnidad")
daEmpleado.UpdateCommand.Parameters.Add("@Activo", OdbcType.Int, 1, "Activo")
daEmpleado.UpdateCommand.Parameters.Add("@Observaciones", OdbcType.VarChar, 255, "Observaciones")
Try
daEmpleado.Fill(dataTableEmpleado)
Catch ex As Exception
Return False
End Try
Try
daEmpleado.Update(dataTableEmpleado)
dataTableEmpleado.AcceptChanges()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function eliminarEmpleado(pIdEmpleado As Long) As Boolean
Dim dsEmpleado As DataSet
Dim daEmpleado As OdbcDataAdapter
daEmpleado = New OdbcDataAdapter("SELECT * FROM Empleados", cnGlobal)
dsEmpleado = New DataSet
daEmpleado.Fill(dsEmpleado)
dsEmpleado.Tables.Add("Empleados")
Dim dataTableEmpleado As New DataTable("Empleados")
daEmpleado.DeleteCommand = New OdbcCommand("DELETE * FROM EMPLEADOS WHERE [IdEmpleado]=@IdEmpleado", cnGlobal)
daEmpleado.DeleteCommand.Parameters.Add("@IdEmpleado", OdbcType.Int, 0, "IdEmpleado").Value = pIdEmpleado
Try
daEmpleado.Fill(dataTableEmpleado)
Catch ex As Exception
Return False
End Try
Try
daEmpleado.Update(dataTableEmpleado)
dataTableEmpleado.AcceptChanges()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
Mi código es el siguiente:
Public Function agregarEmpleado(pNIFEmp As String, pApeNomEmp As String, pTelEmp As String, pMailEmp As String, pFKIdUnidad As Integer, pActivo As Boolean, pobservaciones As String) As Boolean
Dim dsEmpleado As DataSet
Dim daEmpleado As OdbcDataAdapter
daEmpleado = New OdbcDataAdapter("SELECT * FROM Empleados", cnGlobal)
dsEmpleado = New DataSet
daEmpleado.Fill(dsEmpleado)
dsEmpleado.Tables.Add("Empleados")
Dim dataTableEmpleado As New DataTable("Empleados")
Dim cm As OdbcCommand = New OdbcCommand("SELECT MAX(IdEmpleado) FROM Empleados", cnGlobal)
Dim MaxIdEmpleado As Long = CLng(cm.ExecuteScalar)
cm.Dispose()
daEmpleado.InsertCommand = New OdbcCommand("INSERT INTO EMPLEADOS(IdEmpleado,NIFEmp,ApeNomEmp,TelEmp,MailEmp,FkIdUnidad,Activo,Observaciones) VALUES(?,?,?,?,?,?,?,?)", cnGlobal)
daEmpleado.InsertCommand.Parameters.Add("@IdEmpleado", OdbcType.Int, 0, "IdEmpleado").Value = MaxIdEmpleado + 1
daEmpleado.InsertCommand.Parameters.Add("@NIFEmp", OdbcType.VarChar, 15, "NIFEmp").Value = pNIFEmp
daEmpleado.InsertCommand.Parameters.Add("@ApeNomEmp", OdbcType.VarChar, 100, "ApeNomEmp").Value = pApeNomEmp
daEmpleado.InsertCommand.Parameters.Add("@TelEmp", OdbcType.VarChar, 15, "TelEmp").Value = pTelEmp
daEmpleado.InsertCommand.Parameters.Add("@MailEmp", OdbcType.VarChar, 100, "MailEmp").Value = pMailEmp
daEmpleado.InsertCommand.Parameters.Add("@FkIdUnidad", OdbcType.Int, 0, "FkIdUnidad").Value = pFKIdUnidad
daEmpleado.InsertCommand.Parameters.Add("@Activo", OdbcType.Int, 1, "Activo").Value = pActivo
daEmpleado.InsertCommand.Parameters.Add("@Observaciones", OdbcType.VarChar, 255, "Observaciones").Value = pobservaciones
Try
daEmpleado.Fill(dataTableEmpleado)
Catch ex As Exception
Return False
End Try
Try
daEmpleado.Update(dataTableEmpleado)
dataTableEmpleado.AcceptChanges()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function modificarEmpleado(pIdEmpleado As Long, pNIFEmp As String, pApeNomEmp As String, pTelEmp As String, pMailEmp As String, pFKIdUnidad As Integer, pActivo As Boolean, pobservaciones As String) As Boolean
Dim dsEmpleado As DataSet
Dim daEmpleado As OdbcDataAdapter
daEmpleado = New OdbcDataAdapter("SELECT * FROM Empleados", cnGlobal)
dsEmpleado = New DataSet
daEmpleado.Fill(dsEmpleado)
dsEmpleado.Tables.Add("Empleados")
Dim dataTableEmpleado As New DataTable("Empleados")
daEmpleado.UpdateCommand = New OdbcCommand("UPDATE EMPLEADOS SET [IdEmpleado]=@IdEmpleado, [NIFEmp]=@NifEmp, [ApeNomEmp]=@ApeNomEmp,[TelEmp]=@TelEmp, [MailEmp]=@MailEmp, [FkIdUnidad]=@FKIdUnidad, [Activo]=@Activo,[Observaciones]=@observaciones", cnGlobal)
daEmpleado.UpdateCommand.Parameters.Add("@IdEmpleado", OdbcType.Int, 0, "IdEmpleado")
daEmpleado.UpdateCommand.Parameters.Add("@NIFEmp", OdbcType.VarChar, 15, "NIFEmp")
daEmpleado.UpdateCommand.Parameters.Add("@ApeNomEmp", OdbcType.VarChar, 100, "ApeNomEmp")
daEmpleado.UpdateCommand.Parameters.Add("@TelEmp", OdbcType.VarChar, 15, "TelEmp")
daEmpleado.UpdateCommand.Parameters.Add("@MailEmp", OdbcType.VarChar, 100, "MailEmp")
daEmpleado.UpdateCommand.Parameters.Add("@FkIdUnidad", OdbcType.Int, 0, "FkIdUnidad")
daEmpleado.UpdateCommand.Parameters.Add("@Activo", OdbcType.Int, 1, "Activo")
daEmpleado.UpdateCommand.Parameters.Add("@Observaciones", OdbcType.VarChar, 255, "Observaciones")
Try
daEmpleado.Fill(dataTableEmpleado)
Catch ex As Exception
Return False
End Try
Try
daEmpleado.Update(dataTableEmpleado)
dataTableEmpleado.AcceptChanges()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function eliminarEmpleado(pIdEmpleado As Long) As Boolean
Dim dsEmpleado As DataSet
Dim daEmpleado As OdbcDataAdapter
daEmpleado = New OdbcDataAdapter("SELECT * FROM Empleados", cnGlobal)
dsEmpleado = New DataSet
daEmpleado.Fill(dsEmpleado)
dsEmpleado.Tables.Add("Empleados")
Dim dataTableEmpleado As New DataTable("Empleados")
daEmpleado.DeleteCommand = New OdbcCommand("DELETE * FROM EMPLEADOS WHERE [IdEmpleado]=@IdEmpleado", cnGlobal)
daEmpleado.DeleteCommand.Parameters.Add("@IdEmpleado", OdbcType.Int, 0, "IdEmpleado").Value = pIdEmpleado
Try
daEmpleado.Fill(dataTableEmpleado)
Catch ex As Exception
Return False
End Try
Try
daEmpleado.Update(dataTableEmpleado)
dataTableEmpleado.AcceptChanges()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
Valora esta pregunta


0