Foros del Web » Programación para mayores de 30 ;) » .NET »

No logro insertar datos.

Estas en el tema de No logro insertar datos. en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/10/2008, 05:30
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 meses
Puntos: 0
No logro insertar datos.

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.

Última edición por KeiDash; 15/10/2008 a las 06:07
  #2 (permalink)  
Antiguo 15/10/2008, 05:58
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: No logro insertar datos.

Hola
Lo que muy seguramente te esta pasando que al trabajar con un archivo adjunto de sql, cuando ejecutas tu aplicación dicha base se copia a tu directorio debug, por lo tanto los datos se te estan guardando en una base temporal que al cerrarce tu aplicación la pierdes.

Lo que podes probar es en tu cadena de conexion ponerle una ruta absoluta a tu base, algo como "C:\myaplicacion\Facturas.mdb".

Suerte.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 15/10/2008, 06:08
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: No logro insertar datos.

Pues he hecho lo que me has dicho y sigue igual. No da ningun error pero la bd sigue sin contener datos, no entiendo
  #4 (permalink)  
Antiguo 15/10/2008, 13:13
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: No logro insertar datos.

Bueno ya encontre el error y de los gordos. No me habia percatado, que el dataset trabaja desconectado y esta copletamente desvinculado de la base de datos...

En fin, ya lo solucione con un comando y un executeNonquery.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:40.