Buenas a todos.
Siempre para trabajar con bases de datos había trabajado con BD de SQl, hasta hoy que lo estoy haciendo con un archivo mdb por necesidad.
El problema es que consigo conectarme a ella correctamente pero no logro insertar campos en las tablas.
Lo que estoy haciendo es lo siguiente:
Código:
Friend dbConnection As OleDbConnection
'
Friend dbDataTable As New Data.DataTable
Friend dbDataSet As Data.DataSet
Friend dbDataAdapter As OleDbDataAdapter
'
Friend CadenaConexion As String
Friend CadenaSelect As String
'
Friend ArchivoDatos As String
Friend NombreTabla As String = "newInsidencias"
Friend Sub Conectar(ByVal pNomBd As String, ByVal cmdString As String)
If pNomBd = "" Then
'pNomBd = insidencias.lRutaApli
pNomBd = "C:\insidencias.mdb"
End If
ArchivoDatos = pNomBd
If ArchivoDatos = "" Then
Exit Sub
End If
CadenaSelect = cmdString
If CadenaSelect = "" Then
CadenaSelect = "Select * From newInsidencias"
End If
CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ArchivoDatos
Try
dbConnection = New OleDbConnection(CadenaConexion)
Catch ex As Exception
MsgBox("No se ha podido realizar la conexión a la base de datos")
Exit Sub
End Try
dbConnection.Open()
'
dbDataSet = New Data.DataSet()
'
dbDataAdapter = New OleDbDataAdapter(CadenaSelect, dbConnection)
Dim commandBuilder As New OleDbCommandBuilder(dbDataAdapter)
dbDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
dbDataAdapter.Fill(dbDataSet, NombreTabla)
Catch ex As Exception
MsgBox("Error en Fill: " & vbCrLf & ex.Message)
End Try
End Sub
Friend Sub Insertar(ByVal pCampos As ArrayList)
Conectar("", "")
Dim cmdInsert As New Data.OleDb.OleDbCommand
Dim queEs As Object
Dim i As Integer = 0
Dim lCadenaInsert As String = ""
lCadenaInsert = "'" & pCampos.Item(i) & "'"
For i = 1 To pCampos.Count - 1
queEs = pCampos.Item(i)
If TypeOf queEs Is Boolean Then
lCadenaInsert = lCadenaInsert & "," & -1
Else
lCadenaInsert = lCadenaInsert & ",'" & pCampos.Item(i) & "'"
End If
Next
cmdInsert.CommandText = "INSERT INTO newInsidencias (Aplicacion,Descripcion,Fecha,Nota,Estado) VALUES(" & lCadenaInsert & ")"
dbDataAdapter.InsertCommand = cmdInsert
dbDataAdapter.Update(dbDataSet, NombreTabla)
dbDataSet.AcceptChanges()
dbConnection.Close()
End Sub
Que estoy haciendo mal?
Saludos y gracias.