Borrar primero los registros de la tabla y luego insertar datos

19/09/2006 - 10:23 por Ira | Informe spam
Con este código puedo insertar los datos en la tabla correctamente pero
primero quiero borrar todos los registros de la tabla y no sé como hacerlo.



Gracias,









Dim Conexion As OleDbConnection

Dim Ds As DataSet

Dim TablaAuxiliar As DataTable

Dim Adaptador As OleDbDataAdapter

Dim Cmb As OleDbCommandBuilder

Dim CmbBorrar As OleDbCommandBuilder



'Conectar a la base de datos

Try

Conexion = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=" & "D:\Prueba\Estudios.mdb")

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try



Ds = New DataSet



'Primero borrar todos los datos de una tabla

Adaptador = New OleDbDataAdapter("DELETE * FROM Auxiliar", Conexion)

Adaptador = New OleDbDataAdapter("SELECT * FROM Auxiliar", Conexion)

Cmb = New OleDbCommandBuilder(Adaptador) 'Esta línea crea los comandos
insert, update y delete en nuestro dataadapter



Try

Adaptador.Fill(Ds, "Auxiliar")

Catch ex As Exception

MessageBox.Show("Error en Fill:" & vbCrLf & ex.Message)

End Try



TablaAuxiliar = Ds.Tables("Auxiliar")

Adaptador.Update(Ds, "Auxiliar")



Do

linea = sr.ReadLine 'Se lee linea a linea el fichero

Loop Until linea Is Nothing Or linea = "[ITEMS]"



If linea = "[ITEMS]" Then

linea = sr.ReadLine

Do

'Grabar cada linea en una tabla auxiliar

Grabar_Linea(linea, TablaAuxiliar)

'Terminando de grabar la linea

Adaptador.Update(Ds, "Auxiliar")

TablaAuxiliar.AcceptChanges()

'Leer la siguiente línea

linea = sr.ReadLine

Loop Until linea Is Nothing



End If

sr.Close() 'Cerrar el fichero

'Cerrar la connexion



If Conexion.State = ConnectionState.Open Then

Conexion.Close()

End If
 

Leer las respuestas

#1 Alberto Poblacion
19/09/2006 - 12:01 | Informe spam
"Ira" wrote in message
news:
Con este código puedo insertar los datos en la tabla correctamente pero
primero quiero borrar todos los registros de la tabla y no sé como
hacerlo.



No intentes usar un DataAdapter para borrar todos los registros, no está
pensado para eso. Es mejor que uses el método ExecuteNonQuery del objeto
Command:

Dim cmd as New OleDbCommand("DELETE FROM Auxiliar", Conexion)
Conexion.Open()
cmd.ExecuteNonQuery()
Conexion.Close()


Una observación acerca de tu código: Tienes las siguientes líneas una a
continuación de la otra:
Adaptador = New OleDbDataAdapter("DELETE * FROM Auxiliar", Conexion)
Adaptador = New OleDbDataAdapter("SELECT * FROM Auxiliar", Conexion)



La primera sentencia no vale para nada, ya que la segunda "pisa" el
contenido anterior del Adaptador, reemplazándolo por el nuevo. Y en
cualquier caso, la primera sentencia sería incorrecta, ya que el contenido
del string se utiliza para inicializar el ComandText del SelectCommand del
DataAdapter, por lo que no funcionará bien si se le pasa un DELETE.

Preguntas similares