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

    [VB.NET 2008] aiuto con il datagrid

    Buongiorno a tutti, premetto che non ho molta esperienza con vb e ho iniziato l'approccio con questo linguaggio per imparare i concetti fondamentali con una vostra guida.
    Andiamo al punto devo fare un programma che sala una tabella in un database con scritto i dati dell'acquirente, cosa ha preso e quanto deve pagare.
    Per creare il database e la tabella (datagridview) ho usato la guida del programma e mi sono creato un database sdf, il datagrid, e il binding navigator con cui salvo e elimino righe.. e qui sta il problema

    Avvio il debug: aggiungo righe e salvo (OK), se elimino una riga con la x del binding navigator e poi salvo mi da un errore...

    Ecco il codice e l'errore:
    codice:
    Public Class Form1
    
        Private Sub TabellaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabellaBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.TabellaBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.Database1DataSet)
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: questa riga di codice carica i dati nella tabella 'Database1DataSet.Tabella'. È possibile spostarla o rimuoverla se necessario.
            Me.TabellaTableAdapter.Fill(Me.Database1DataSet.Tabella)
    
        End Sub
    Nell'errore mi evidenzia
    codice:
    Me.TableAdapterManager.UpdateAll(Me.Database1DataSet)
    e dice "Update richiede un DeleteCommand valido se l'insieme DataRow viene passato con righe eliminate."
    Come risolvo? (magari però volevo levare il binding navigator e fare dei tasti salva e elimina)

    e l'ultimo aiuto:
    avrei bisogno di un comando che selezionata una linea, il testo della prima cella mi va in una variabile nome ecc
    lo sapevo fare con la listbox che si usa subitem(x).text ma con il datagrid non funziona...
    mi basta solo capire come faccio a selezionare il testo di una cella di una riga selezionata

    Aspetto vostra risposta

    [EDIT : linguaggio VB .NET 2008]

  2. #2
    risolto la seconda parte dopo vari tentativi

    codice:
    Dim TxtCella As String
    TxtCella = TabellaDataGridView.CurrentRow.Cells(0).Value.ToString
    e tra parentesi metto la colonna che mi interessa....

    il problema rimane la prima parte ho scoperto solo che l'errore me lo da non solo quando cancello ma anche quando modifico una riga

    attendo come prima una risposta

  3. #3
    io uso VB2003 ma la logica dovrebbe essere simile, quando esegui il comando di Update l'adapter esegue il comando SQL relativo allo stato del record, se lo stato è added sarà il comando Insert, se modified sarà Update e se è deleted sarà Delete. quindi da qualche parte dovrebbero esserci specificati questi tre comandi. l'errore che hai vuol dire che il comando Delete ti manca. trova dove hai le stringhe e le dichiarazioni dell'adapter ed inseriscilo.
    I database... la mia passione + o -

  4. #4
    Originariamente inviato da power.mobile
    io uso VB2003 ma la logica dovrebbe essere simile, quando esegui il comando di Update l'adapter esegue il comando SQL relativo allo stato del record, se lo stato è added sarà il comando Insert, se modified sarà Update e se è deleted sarà Delete. quindi da qualche parte dovrebbero esserci specificati questi tre comandi. l'errore che hai vuol dire che il comando Delete ti manca. trova dove hai le stringhe e le dichiarazioni dell'adapter ed inseriscilo.
    allora il problema è che per aggiungere non ho comandi fa da se la tabella e fin quì ok
    per eliminare dovrei fare un delete command e per il codice pensavo a
    codice:
    TabellaDataGridView.CurrentRow.Delete()
    ma mi da che delete non è un membro di windowsform1.tabelladatagridview
    io quando cancello uso la x sul binding navigator (che infatti non capisco perchè quel bip di tastino non ha un codice, cancella senza avere un codice scritto) e la riga scompare effettivamente ma non mi salva il cambiamento e quando salvo restituisce un errore

    per la modifica pace, che modificare cancellerò la riga e ne ricreerò un altra e metto le celle in readonly in modo da non modificarle e da non creare un errore

    se te fossi in me come lo faresti il pulsante per eliminare la riga?(il codice intendo)

  5. #5
    come ti ho già detto io uso il 2003, elì non esiste il binding navigator, comunque al binding navigator assegni la connessione giusto? e lui in automatico dovrebbe generare i comandi (forse anche il select no?) quindi guardando nelle proprietà del navigator dovresti trovarti le stringhe dei vari comandi... e comunque dovresti trovarteli nella parte di codice di progettazione form... per quanto riguarda il navigator non si dirti altro...


    se devi farlo indipendentemente basta che leggi dalla riga il campo univoco del record, e lo inserisci in un comando delete che invii al database tramite un command.execute

    qualcosa del genere comunque:
    codice:
    "DELETE t.* FROM table1 as t WHERE campo1=" & campochiave
    I database... la mia passione + o -

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.