none
Problemas para actualizar bd desde vs 2005 RRS feed

  • Pregunta

  • Hola amigos y gracias de antemano.

    Tengo un proyecto hecho que cuenta con dos formularios (uno abre el otro). En el segundo tengo 3 datagridviews. El código para leer los datos de la mdb es:

    Private Sub LeerDatos1(ByVal selectCommand As String)
        Try
          ' Especificar un 'connection string' valido
          ' En este caso origen de la carpeta de la aplicacion M.Access
          Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\svnas2\produ2\04_METODOS\41_Procesos\412_Serie\Control_chapa\Control_de_programas.mdb"
          'Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\USERPROD\Escritorio\Control_de_programas.mdb"
          ' Crear un nuevo adaptador de datos basado en el 'query' especificado
          Me.AdaptadorDeDatos = New OleDb.OleDbDataAdapter(selectCommand, connectionString)
          ' Crear un 'commandbuilder' que genere el SQL Update/Insert/Delete
          ' segun el 'selectcommand', usado para actualizar la BD
          Dim commandbuilder As New OleDb.OleDbCommandBuilder(Me.AdaptadorDeDatos)
          With AdaptadorDeDatos
            .InsertCommand = commandbuilder.GetInsertCommand
            .UpdateCommand = commandbuilder.GetUpdateCommand
            .DeleteCommand = commandbuilder.GetDeleteCommand
          End With
          ' Llenar la tabla con los datos y enlazarza con el 'bindingsource'
          Me.AdaptadorDeDatos.Fill(tabla)
          Me.bindingSource1.DataSource = tabla
          Me.DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
          'Me.DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.ColumnHeader)
        Catch ex As Exception
          MessageBox.Show("Excepcion al leer los datos:" + ex.Message)
        End Try
      End Sub
    

     Los datos los lee bien en los tres casos. Si a continuación hago una modificación, obtengo el siguiente error:

    "No se han especificado valores para algunos de los parámetros requeridos."

    Y esto justamente aparece en la parte del código del boton que guarda los cambios:

     Dim cambios As DataTable = tabla.GetChanges   'Le asignamos los cambios de la tabla a una variable 
    If cambios Is Nothing Then 'Si esta vacío 
              MessageBox.Show("No hay cambios en las Máquinas 1 y 2", "Guardar base de datos")
            Else
              Me.AdaptadorDeDatos.Update(CType(Me.bindingSource1.DataSource, DataTable))
            End If
    

    Alguien sabría decirme porqué obtengo ese error? He de decir igualmente que este código me ha funcionado hasta que añadí un formulario más, no sé si tiene algo que ver.

    Un saludo,

    Guille

    viernes, 9 de julio de 2010 7:56

Respuestas

  • Me respondo yo mismo,

    El problema era que un campo de mi db lo había nombrado como "SERIE/PIEZA". Al cambiarlo a "SERIE_PIEZA" ha desaparecido el error.

    Ciao y a seguir programando!

    • Marcado como respuesta Cachaba miércoles, 21 de julio de 2010 8:28
    viernes, 9 de julio de 2010 8:28