Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431

    [VB.NET] Aggiornare dati in dataset

    Ciao, ho un dataset che vorrei aggiornare con il codice seguente:

    codice:
    adapterDati.Update(DtsDati, "caricoIMG")
    DtsDati.AcceptChanges()
    ma mi da questo errore: Update richiede un UpdateCommand valido se l'insieme DataRow viene passato con righe modificate

    questo perche' scorro i vari record per visualizzarli con un CurrencyManager e li aggiorno in questo modo:

    codice:
    Associo la tabella del dataset
    mioCurrManager = CType(Me.BindingContext(tbDati), CurrencyManager)
    mioCurrManager.Position = 0
    [CODE]
    Private Sub tipoPOS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tipoPOS.TextChanged
    If tipoPOS.Text <> "" Then
    DtsDati.

  2. #2
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431
    codice:
    Private Sub tipoPOS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tipoPOS.TextChanged
      If tipoPOS.Text <> "" Then
         DtsDati.Tables("caricoImg").Rows(mioCurrManager.Position).Item("tipoPos") = tipoPOS.Text
      End If
    End Sub
    inoltre ho un po di campi agganciati al dataset cosi:
    codice:
    tbDati = DtsDati.Tables("caricoIMG")
    tipoPOS.MaxLength = 5
    tipoPOS.DataBindings.Add("Text", tbDati, "tipopos", True)
    NDG.MaxLength = 9
    NDG.DataBindings.Add("Text", tbDati, "ndg", True)
    nomeIMG.DataBindings.Add("text", tbDati, "img")
    numBatch.DataBindings.Add("text", tbDati, "batch")
    progr.DataBindings.Add("text", tbDati, "progressivo")
    i campi che modifico sono tipoPos e nd gli altri li visualizzo solamente, vorrei aggiornali ogni volta che sull'evento keydown della textbox ndg premo invio (questo l'ho fatto). come faccio ad aggiornare il dataset senza errori? Spero di essere abbastanza chiaro, se vedete variabili che non sono dichiarate e' perche sono pubbliche e questi sono solo pezzi di codice
    Da un grande potere derivano grandi responsabilità

  3. #3
    Ciao.
    L'errore che ricevi, indica solo che non è stato inizialiazzato il command che si occupa dell'Update dei dati nel Database.
    Ora, le strade sono due ... o lo inizializzi manualmente, o ti affidi ad un CommanBuilder.

    Per maggiori info, puoi consultare MSDN, altrimenti ..... facci sapere.
    Ciao

  4. #4
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431
    Ciao, ho modificato il codice per l'aggiornamento in questo modo:

    codice:
    Dim cmdBuilder As New OleDbCommandBuilder(adapterDati)
    adapterDati.Update(DtsDati, "caricoIMG")
    DtsDati.AcceptChanges()
    ma mi restituisce l'errore:
    Generazione SQL dinamica per UpdateCommand non supportata per un SelectCommand che non restituisce informazioni di colonne chiave.

    devo mettere una chiave primaria nella tabella?
    Da un grande potere derivano grandi responsabilità

  5. #5
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    431
    ok ho risolto, il commandbuilder non funziona in questi casi:

    - la tua select è su una tabella senza chiave primaria univoca
    - la tua select è su una tabella e non recuperi uno o piùi campi chiave
    - la tua select estrae i dati da più tabelle
    - la tua select usa dei "join"

    grazie a tutti dell'aiuto che mi avete dato.
    Da un grande potere derivano grandi responsabilità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.