Eliminar un Registro

16/08/2004 - 22:22 por Omar Flores | Informe spam
Hola que tal, tengo un problema al tratar de eliminar un registro.

Tengo una forma con un TabControl y varios TabPages, en el TabPage
correspondiente
a las bajas tengo lo siguiente.


Declaracion de variables

Public Class frmProveedores
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Dim daBProveedor As SqlClient.SqlDataAdapter
Dim dsBProveedor As New DataSet
Dim drBProveedor As DataRow
Dim dtBProveedor As DataTable = New DataTable


-

Private Sub tpBaja_Layout(ByVal sender As Object, ByVal e As
System.Windows.Forms.LayoutEventArgs) Handles tpBaja.Layout
txtBRFC.Focus()
Dim dc(0) As DataColumn

Try
daBProveedor = New SqlClient.SqlDataAdapter("Select * from
Proveedor", conn)
daBProveedor.Fill(dtBProveedor)
dc(0) = dtBProveedor.Columns("RFC_Proveedor")
dtBProveedor.PrimaryKey = dc
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

End Sub

' Aqui lo unico que hago es Llenar la tabla y establecer la columna de la
llave primaria.


Ahora tengo un botón de busqueda que manda llamar a un Procedimiento llamado
BuscaBaja, el cual tiene el sig. código.


Private Sub BuscaBaja()
Dim busca(0) As Object
busca(0) = txtBRFC.Text
drBProveedor = dtBProveedor.Rows.Find(busca)

txtBRFC.Text = drBProveedor("RFC_Proveedor").ToString
txtBNombre.Text = drBProveedor("Nombre").ToString
txtBDireccion.Text = drBProveedor("Direccion").ToString
cbBCiudad.Text = drBProveedor("Ciudad").ToString
txtBTelefono.Text = drBProveedor("Telefono").ToString
End Sub

Aqui le mando el parámetro del RFC, si lo encuentra despliega el contenido
de los demas campos.
(hasta aquí no tengo ningun problema)


Y por último tengo un botón que manda llamar a un procedimiento llamado
Eliminar, el cual tiene el sig. código.


Private Sub Eliminar()
Dim cbBProveedor As SqlClient.SqlCommandBuilder
Try
cbBProveedor = New SqlClient.SqlCommandBuilder(daBProveedor)
dsBProveedor.Tables("Proveedor").Rows.Remove(drBProveedor) '(*)
daBProveedor.DeleteCommand = cbBProveedor.GetDeleteCommand
daBProveedor.Update(dsBProveedor, "Proveedor")
dsBProveedor.Tables("Proveedor").AcceptChanges()
daBProveedor.DeleteCommand.Connection.Close()
MsgBox("Registro Eliminado ")
Catch ex As SqlClient.SqlException
MsgBox("Ocurrio el siguiente error: " & ex.Message)
Catch exc As Exception
MsgBox("Ocurrio el siguiente error: " & exc.Message)
End Try

End Sub

Aqui pretendo eliminar el registro que buscamos anteriormente, pero me marca
el Sig. error:

referencia a Objeto no establecida como instancia de un objeto (*)


Espero y me puedan decir que es lo que estoy haciendo mal y/o proporcionarme
algúna otra alternativa

Por su ayuda, muchas gracias.
 

Leer las respuestas

#1 Nestus
16/08/2004 - 21:20 | Informe spam
Tienes que instanciar la variable que te esta generando ese error, dado que
solamente la has declarado pero no le has hecho el new es por eso que te
lanza ese error.

Saludos

"Omar Flores" escribió en el mensaje
news:
Hola que tal, tengo un problema al tratar de eliminar un registro.

Tengo una forma con un TabControl y varios TabPages, en el TabPage
correspondiente
a las bajas tengo lo siguiente.


Declaracion de variables

Public Class frmProveedores
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Dim daBProveedor As SqlClient.SqlDataAdapter
Dim dsBProveedor As New DataSet
Dim drBProveedor As DataRow
Dim dtBProveedor As DataTable = New DataTable


-

Private Sub tpBaja_Layout(ByVal sender As Object, ByVal e As
System.Windows.Forms.LayoutEventArgs) Handles tpBaja.Layout
txtBRFC.Focus()
Dim dc(0) As DataColumn

Try
daBProveedor = New SqlClient.SqlDataAdapter("Select * from
Proveedor", conn)
daBProveedor.Fill(dtBProveedor)
dc(0) = dtBProveedor.Columns("RFC_Proveedor")
dtBProveedor.PrimaryKey = dc
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try

End Sub

' Aqui lo unico que hago es Llenar la tabla y establecer la columna de la
llave primaria.


Ahora tengo un botón de busqueda que manda llamar a un Procedimiento


llamado
BuscaBaja, el cual tiene el sig. código.


Private Sub BuscaBaja()
Dim busca(0) As Object
busca(0) = txtBRFC.Text
drBProveedor = dtBProveedor.Rows.Find(busca)

txtBRFC.Text = drBProveedor("RFC_Proveedor").ToString
txtBNombre.Text = drBProveedor("Nombre").ToString
txtBDireccion.Text = drBProveedor("Direccion").ToString
cbBCiudad.Text = drBProveedor("Ciudad").ToString
txtBTelefono.Text = drBProveedor("Telefono").ToString
End Sub

Aqui le mando el parámetro del RFC, si lo encuentra despliega el contenido
de los demas campos.
(hasta aquí no tengo ningun problema)


Y por último tengo un botón que manda llamar a un procedimiento llamado
Eliminar, el cual tiene el sig. código.


Private Sub Eliminar()
Dim cbBProveedor As SqlClient.SqlCommandBuilder
Try
cbBProveedor = New SqlClient.SqlCommandBuilder(daBProveedor)
dsBProveedor.Tables("Proveedor").Rows.Remove(drBProveedor)


'(*)
daBProveedor.DeleteCommand = cbBProveedor.GetDeleteCommand
daBProveedor.Update(dsBProveedor, "Proveedor")
dsBProveedor.Tables("Proveedor").AcceptChanges()
daBProveedor.DeleteCommand.Connection.Close()
MsgBox("Registro Eliminado ")
Catch ex As SqlClient.SqlException
MsgBox("Ocurrio el siguiente error: " & ex.Message)
Catch exc As Exception
MsgBox("Ocurrio el siguiente error: " & exc.Message)
End Try

End Sub

Aqui pretendo eliminar el registro que buscamos anteriormente, pero me


marca
el Sig. error:

referencia a Objeto no establecida como instancia de un objeto (*)


Espero y me puedan decir que es lo que estoy haciendo mal y/o


proporcionarme
algúna otra alternativa

Por su ayuda, muchas gracias.


Preguntas similares