Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 41
  1. #31
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,322
    Quote Originariamente inviata da Trafiltecno Visualizza il messaggio
    [CODE]
    ecco le modifiche che ho fatto questa mattina, evidentemente sbaglio ancora perché la tabella non viene aggiornata..
    Quando usi l'istruzione Comando.Parameters.AddWithValue(), vai a specificare due parametri all'interno: tu hai compreso bene qual è il ruolo di questi argomenti?

    Quando scrivi
    codice:
    Comando.Parameters.AddWithValue("@1", Codice)
    sai cosa stai indicando con quel "@1"?

    Se non lo sai, rileggi la documentazione.
    Se hai riletto e non ti è chiara, chiedi.
    Se hai riletto e ti è chiara, la soluzione viene da sè.
    Non puoi avere letto tutto, avere tutto chiaro, e poi inserire un parametro errato.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  2. #32
    a parte che ci sono ancora degli errori (copia & incolla selvaggio? ) DOPO l'esecuzione dello statement, che fai con

    codice:
    Comando.ExecuteNonQuery()
    puoi ricavare cosa hai effettivamente eseguito con

    codice:
    Dim QueryVera As String = Comando.CommandText
    Quindi se ispezioni QueryVera vedi cosa hai combinato col codice

  3. #33
    Ciao, si, lo 01 e relativo al campo Articolo. Non ci crederai ma ho risolto il problema e funziona tutto. Ora ti posto il codice,
    in pratica ho messo come ultimo comando.Parameters.AddWithValue al fondo e ha funzionato.

    codice:
     Comando.Parameters.AddWithValue("@1", row("Articolo"))
     Comando.Parameters.AddWithValue("@2", MeseCorso)
     Comando.Parameters.AddWithValue("@3", row("Fornitori01"))
     Comando.Parameters.AddWithValue("@4", row("Fornitori02"))
     Comando.Parameters.AddWithValue("@ID", row("ID"))
    funziona PERFETTAMENTE, ottengo il risultato voluto.
    Grazie per il supporto, solo mettendoci le mani capisci il perche delle cose, ho eliminato le variabili che non
    servivano, i vari For01 02 03 etc..e uso direttamente le variabili modificate sperando di fare la cosa giusta.

  4. #34
    chissà com'è, a fare le cose come vanno fatte, esse funzionano


  5. #35
    Hai ragione...da vb6 a visual net e proprio un'altra cosa...ma non demordo, anche perche prima di andare in pensione vorrei lasciare l'applicativo scritto in visual net, poi qualcuno penserà a tenerlo aggiornato..
    Avro ancora bisogno di voi, spero piu in la possibile.
    Grazie per ora

  6. #36
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,322
    Quote Originariamente inviata da Trafiltecno Visualizza il messaggio
    Ciao, si, lo 01 e relativo al campo Articolo.
    Sì, ok, ma questa affermazione non dice nulla: tutto quanto è relativo a qualcos'altro.

    Il primo argomento di AddWithValue() è il nome del parametro che hai usato nella query come segnaposto, ovvero il segnaposto che hai inserito e che verrà sostituito dal valore effettivo specificato per il parametro.

    Questo significa che se hai questa query
    codice:
    Dim Query1 As String = "UPDATE Assegnazioni SET Articolo = @01, MeseAttuale = @02, Fornitori01 = @03, Fornitori02 = @04 WHERE ID = @ID"
    andrai ad aggiornare tutti i record dove il campo Articolo è uguale al valore che hai indicato nel parametro @01.

    Se il segnaposto è @01, perché quando valorizzi il parametro usi @1?
    codice:
    Comando.Parameters.AddWithValue("@1", Codice)
    E' come dire che usi "Carlo" al posto di "Giancarlo".

    E' ovvio che quel codice sia errato: tu vai a valorizzare un parametro indicando un nome diverso da quello che hai utilizzato nella query.

    Quote Originariamente inviata da Trafiltecno Visualizza il messaggio
    Non ci crederai ma ho risolto il problema e funziona tutto. Ora ti posto il codice,
    in pratica ho messo come ultimo comando.Parameters.AddWithValue al fondo e ha funzionato.
    In realtà, nonostante la tua conferma, io continuo a nutrire dubbi in generale, ma ovviamente non ho la possibilità di vedere la tua macchina per appurarlo, e continuo a percepire "fumosità" nella comprensione del concetto di cui sopra.

    Questo considerato anche che, potendo dare un nome arbitrario al parametro (basta che nella query e nella sua valorizzazione si faccia riferimento allo stesso), tu abbia scelto un nome come @01, o @1 che sia, al posto di un più significativo @Articolo, che avrebbe fatto capire esattamente cosa finisce in quel parametro (posto che lo stesso nome "Articolo" è fuorviante, poiché non si capisce cosa si indica dell'articolo... se il codice, il nome, la descrizione o altro).

    Quote Originariamente inviata da Trafiltecno Visualizza il messaggio
    funziona PERFETTAMENTE, ottengo il risultato voluto.
    Anche con la saliva si possono appendere dei quadri: ciò che si sta rimarcando è il fatto che quel codice risulta poco manutenibile e ci sono scelte (nei nomi, nella sequenza delle operazioni e così via) che sono molto discutibili e che richiederebbero un approfondimento ulteriore (da parte tua, s'intende) escludendo l'obiettivo principale del "funziona", che a volte può anche andare bene ma non è detto che sia risolutivo.

    Quote Originariamente inviata da Trafiltecno Visualizza il messaggio
    Grazie per il supporto, solo mettendoci le mani capisci il perche delle cose, ho eliminato le variabili che non
    servivano, i vari For01 02 03 etc..e uso direttamente le variabili modificate sperando di fare la cosa giusta.
    Continui ad alternare estrema convinzione e un pizzico di insegnamento di vita ("solo mettendoci le mani capisci..."), che peraltro sono cose abbastanza comprensibili per non dire ovvio, a una dose massiccia di incertezza ("sperando di fare la cosa giusta").

    Comunque, sono solo suggerimenti, poi ovviamente da questo punto di vista sei liberissimo (per forza di cose) di gestire tutto come credi sia più opportuno.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #37
    un altro consiglio: quando fai cose nuove, come in questo caso, falle a pezzi. Trovare l'errore (concettuale in questo caso) in mezzo a centinaia di righe è una fatica maggiore rispetto a fare un tentativo isolato e circoscritto per capire come funziona una certa istruzione (e faciliti anche chi chiami ad aiutarti). Il divide et impera funziona sempre

  8. #38
    Quote Originariamente inviata da alka Visualizza il messaggio
    Questo considerato anche che, potendo dare un nome arbitrario al parametro (basta che nella query e nella sua valorizzazione si faccia riferimento allo stesso), tu abbia scelto un nome come @01, o @1 che sia, al posto di un più significativo @Articolo, che avrebbe fatto capire esattamente cosa finisce in quel parametro (posto che lo stesso nome "Articolo" è fuorviante, poiché non si capisce cosa si indica dell'articolo... se il codice, il nome, la descrizione o altro).
    Dare il nome a variabili e parametri è un'arte

  9. #39
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,322
    Quote Originariamente inviata da optime Visualizza il messaggio
    Dare il nome a variabili e parametri è un'arte
    Direi che è la base.
    Ma analizzando la battuta, capisco cosa intendi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #40
    Grazie Alfa, con il tempo imparero, all'inizio ho usato i nomi per i vari campi, stamattina per sveltire la cosa ho usato i numeri.
    I suggerimenti sono sempre accetti, ci mancherebbe, ma e il modo con cui sono espressi che a volte da fastidio, tu sei bravo in materia, io lo faccio per diletto , i concetti che hai esposto li conosco ampiamente, usando la procedura, quando uso Articolo o Codice per me sono la stessa cosa, Intendo articolo di magazzino, il campo nella tabella e memorizzato come articolo mentre codice che usato per identificare un articolo.
    I segnaposto, per capire meglio, in seguito li ho sostituiti con i nome effettivi relativi ai campi. so che nel tempo saràà piu facile leggere se dovessi rimetterci le mani.
    Spero con il passare del tempo di levarti i dubbi che hai.
    Comunque grazie per l'aiuto e il supporto.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.