Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET] Aggiornamento dati da Datagrid

    Buongiorno,
    è da un giorno che mi scontro con un fastidioso problema.

    Carico i dati in una datagrid collegandola ad una datatable che carico usando un parametro immesso in una textbox.
    Nella datagrid non mostro la colonna cliente (quella del parametro) perchè sarebbe una informazione inutile ed avendo poco spazio non non voglio sprecarlo.

    Il problema è che quando inserisco una nuova riga mi esce sempre questo errore.

    ---------------------------
    Errore durante il commit della riga all'archivio dati originale.
    ---------------------------
    La colonna 'Cliente' non accetta valori null. Correggere il valore?
    ---------------------------
    Sì No
    ---------------------------

    Ho provato a modificare il comando di insert in vari momenti, inserendo il valore di 'Cliente' che voglio io, ma non sono riuscito a risolvere il mio problema.
    Qualcuno sa aiutarmi?

    Grazie.

    P.S. Se servono altri elemente per chiarire il problema chiedete!

  2. #2
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215

    Re: [VB.NET] Aggiornamento dati da Datagrid

    Originariamente inviato da MaiRoc
    Buongiorno,
    è da un giorno che mi scontro con un fastidioso problema.

    Carico i dati in una datagrid collegandola ad una datatable che carico usando un parametro immesso in una textbox.
    Nella datagrid non mostro la colonna cliente (quella del parametro) perchè sarebbe una informazione inutile ed avendo poco spazio non non voglio sprecarlo.

    Il problema è che quando inserisco una nuova riga mi esce sempre questo errore.

    ---------------------------
    Errore durante il commit della riga all'archivio dati originale.
    ---------------------------
    La colonna 'Cliente' non accetta valori null. Correggere il valore?
    ---------------------------
    Sì No
    ---------------------------

    Ho provato a modificare il comando di insert in vari momenti, inserendo il valore di 'Cliente' che voglio io, ma non sono riuscito a risolvere il mio problema.
    Qualcuno sa aiutarmi?

    Grazie.

    P.S. Se servono altri elemente per chiarire il problema chiedete!
    Se posti il codice di inserimento forse è piu facile identificare il problema.
    La mia pazzia continua a prosciugare la mia anima

  3. #3
    il bello è che non c'è codice di inserimento!!!

    Si smazza tutto la classe datagrid e la datatable associata o il relativo oledbdataadapter.

    Ho messo blocchi ovunque e l'errore me lo da prima di passare da qualsiasi parte!!!

    Poi magari mi sono perso qualcosa ...

  4. #4
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da MaiRoc
    il bello è che non c'è codice di inserimento!!!

    Si smazza tutto la classe datagrid e la datatable associata o il relativo oledbdataadapter.

    Ho messo blocchi ovunque e l'errore me lo da prima di passare da qualsiasi parte!!!

    Poi magari mi sono perso qualcosa ...
    Beh sicuramente i dati che hai nella datatable saranno compresi una procedura dove fai una "select" .
    L'errore è dato dal fatto che la tua la colonna CodiceCliente non accetta valori Null e non inserisci nulla alla creazione della nuova riga perché la colonna non viene visualizzata.
    La mia pazzia continua a prosciugare la mia anima

  5. #5
    Bravissimo,
    in effetti nella Select passo io il paramentro "cliente", ma per la insert pur modificando come vedi il dataadapter non riesco ad ottenere lo stesso risultato ... ho provato anche a passare il parametro ... o modificare la visualizzazione del valore null, ma non ho ottenuto nulla di buono.
    codice:
        Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
            Try
                If Me.cCliente.Text = "" Then
                    Exit Sub
                ElseIf IsNumeric(Me.cCliente.Text) = False Then
                    MessageBox.Show("Inserire un Codice Cliente valido!", "Controllo Codice Cliente", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Exit Sub
                End If
                'Attempt to load the dataset.
                Me.OleDbDataAdapter1.SelectCommand.Parameters("Cliente").Value = Me.cCliente.Text
                Me.OleDbDataAdapter2.SelectCommand.Parameters("Cliente").Value = Me.cCliente.Text
                Me.LoadDataSet()
                If Me.editRagSoc.Text = "" Then
                    MessageBox.Show("Codice Cliente non trovato!", "Controllo Codice Cliente", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Else
                    Me.OleDbDataAdapter1.InsertCommand.CommandText = "INSERT INTO Assortimento(Cliente, Articolo, CxC, PrezzoListino, Sconto1, Sconto2, Sconto3, Sconto4, Sconto5, Sconto6, Sconto7, Sconto8, Sconto9) VALUES (" & Me.cCliente.Text & ", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
                    '    Me.OleDbDataAdapter1.InsertCommand.Parameters("Cliente").Value = Me.cCliente.Text
                    'Me.grdAssortimento.TableStyles(0).GridColumnStyles(12).NullText = Me.cCliente.Text
                End If
            Catch eLoad As System.Exception
                System.Windows.Forms.MessageBox.Show(eLoad.Message)
            End Try
    
        End Sub

  6. #6
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da MaiRoc
    Bravissimo,
    in effetti nella Select passo io il paramentro "cliente", ma per la insert pur modificando come vedi il dataadapter non riesco ad ottenere lo stesso risultato ... ho provato anche a passare il parametro ... o modificare la visualizzazione del valore null, ma non ho ottenuto nulla di buono.
    codice:
        Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
            Try
                If Me.cCliente.Text = "" Then
                    Exit Sub
                ElseIf IsNumeric(Me.cCliente.Text) = False Then
                    MessageBox.Show("Inserire un Codice Cliente valido!", "Controllo Codice Cliente", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Exit Sub
                End If
                'Attempt to load the dataset.
                Me.OleDbDataAdapter1.SelectCommand.Parameters("Cliente").Value = Me.cCliente.Text
                Me.OleDbDataAdapter2.SelectCommand.Parameters("Cliente").Value = Me.cCliente.Text
                Me.LoadDataSet()
                If Me.editRagSoc.Text = "" Then
                    MessageBox.Show("Codice Cliente non trovato!", "Controllo Codice Cliente", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Else
                    Me.OleDbDataAdapter1.InsertCommand.CommandText = "INSERT INTO Assortimento(Cliente, Articolo, CxC, PrezzoListino, Sconto1, Sconto2, Sconto3, Sconto4, Sconto5, Sconto6, Sconto7, Sconto8, Sconto9) VALUES (" & Me.cCliente.Text & ", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
                    '    Me.OleDbDataAdapter1.InsertCommand.Parameters("Cliente").Value = Me.cCliente.Text
                    'Me.grdAssortimento.TableStyles(0).GridColumnStyles(12).NullText = Me.cCliente.Text
                End If
            Catch eLoad As System.Exception
                System.Windows.Forms.MessageBox.Show(eLoad.Message)
            End Try
    
        End Sub
    se metti un punto di interruzione sul codice al momento della valorizzazione della parte VALUES() puoi vedere se il me.ccliente.text e valorizzato??
    il campo cliente e di tipo int se nn mi sbaglo??
    La mia pazzia continua a prosciugare la mia anima

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.