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

    [VB 2010] Problema con le query INSERT, UPDATE e DELETE con il Query Builder

    Ciao ragazzi,
    ho un problema che non riesco a superare per quanto riguarda la creazione delle query INSERT, UPDATE e DELETE tramite il Query Builder di VB2010. Vi spiego meglio il mio problema.

    Ho due tabelle nel database, CLIENTI e LAVORI in relazione uno a molti. Ho modificato la query associata al FILL del LAVORItableadapter in modo da creare dinamicamente una colonna di nome CLIENTE all'interno del quale viene inserito NOME+COGNOME presi dalla tabella CLIENTI attraverso il confronto dell'ID preso da CLIENTI con IDCLIENTE preso da LAVORI.
    Fin qui tutto ok, riesco a riempire correttamente un datagridview associato all'interno del quale compare anche la nuova colonna CLIENTE, che fisicamente non esiste all'interno della tabella CLIENTI.

    Il problema è che ora il query builder non riesce a creare dinamicamente le query per INSERT, UPDATE e DELETE in quanto estraggo valori da due tabelle. Cliccando sulle proprietà di LAVORItableadapter infatti, i campi UPDATE,INSERT e DELETE sono vuoti.

    Ho provato ad associare loro una nuova query, ma non riesco a capire come assegnare un valore legato ad esempio ad una textbox. Per esempio, come scrivo:

    DELETE FROM Lavori WHERE ID = val(txtID.text)
    oppure
    DELETE FROM Lavori WHERE ID = (valore ID corrispondente alla riga selezionata nel datagridview)

    Spero di essere stato abbastanza chiaro.

    Grazie in anticipo a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    119
    Siccome hai gestito una query con una join automaticamente il wizard non genera più i comandi.
    Devi editarli e inserirli manualmente.

  3. #3
    Si lo avevo capito, e infatti ho provato a scriverle manualmente. Ma non ho capito come fare ad inserire ad esempio un confronto tra un campo ed il valore di una textbox.

    Se devo eliminare il rigo selezionato ad esempio, la query dovrebbe essere tipo:

    DELETE FROM Lavori WHERE ID=txtID.text
    e no so come specificarlo nel query builder...

  4. #4
    Tra l'altro, ho provato a scrivere come query per il DELETE la seguente:
    DELETE FROM Lavori WHERE ID="5"
    quindi senza nessun valore dinamico preso in base al rigo selezionato o in base ad una texbox. Ho usato una cosa che DEVE funzionare insomma, e invece ricevo due errori che non so proprio da cosa possano dipendere:



    Aiuto, sto impantanato per una stupidaggine e non riesco a venirne a capo. Preferivo il vecchio recordset di VB6, era tutto scritto a mano ed era più semplice da gestire secondo me

  5. #5
    Ho risolto, ho trovato dove impostare i parametri.

  6. #6
    potresti riportare come hai fatto?

  7. #7
    Certo.
    Ho prima di tutto creato la query ad esempio per un FILL personalizzato, andando ad inserire il parametro @GIORNI nel WHERE


    Fatto questo bisogna selezionare il FILL appena creato dalla schermata del designer e aggiungere il collegamento al nuovo parametro aggiunto nella query attraverso il pulsantino (quello che non trovato) presente nella parte destra dello schermo, come in foto.


    Aggiungiamo un nuovo parametro e lo chiamiamo come vogliamo.
    (Nel mio caso, avendo usato solo @GIORNI, ho aggiunto un solo parametro, ma usando più @ bisognerà aggiungere un parametro per ogni @ usato nella query)


    Facendo questo, quando andremo a richiamare la query personalizzata da codice, potremo finalmente specificare da dove prendere l'informazione da inserire nella query alla sua esecuzione. Nel mio caso, @GIORNI assumerà il valore contenuto in cmbGiorniAllaScadenza.Text

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.