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

    [VB.NET Query di inserimento nel Database

    Non riesco a capire perchè la seguente query per inserire dati nel database non funziona... o meglio, funziona, solo che memorizza i campi in maniera errata: ovvero, il NomePaziente lo memorizza nel campo FotoPaziente, il CognomePaziente in quello della FotoPaziente e via discorrendo!

    Imposto male io la stringa oppure l'errore è da ricercarsi in qualche altra parte del codice? Se necessario magari posso postare l'intero codice...

    Proprio non capisco !!



    codice:
    ' Inizializza Dati per l'inserimento nel Database
    Paziente.FotoPaziente = "NoFoto.jpg"
    Paziente.NomePaziente = tbNome.Text
    Paziente.CognomePaziente = tbCognome.Text
    
    
    ' Query di inserimento
    Dim myINSERTQuery As String
    myINSERTQuery = "INSERT INTO Paziente (FotoPaziente,NomePaziente,CognomePaziente) VALUES (@FotoPaziente,@NomePaziente,@CognomePaziente)"
    myCommand.Parameters.Add(New OleDbParameter("@FotoPaziente", Paziente.FotoPaziente))
    myCommand.Parameters.Add(New OleDbParameter("@NomePaziente", Paziente.NomePaziente))
    myCommand.Parameters.Add(New OleDbParameter("@CognomePaziente", Paziente.CognomePaziente))
                            
    ' Esegue la Query di inserimento
    myCommand.CommandText = myINSERTQuery
    myCommand.ExecuteNonQuery()
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  2. #2
    Credo di aver capito dov'era il problema: in pratica scrivevo il pezzo di codice che ho postato sopra all'interno di un ciclo IF dopo un'altra istruzione di lettura nel DB, utilizzando la stessa variabile di tipo "OleDBComman".

    Ho risolto definendo una nuova variabile e modificando il codice come segue:

    codice:
    Dim myCommand2 As New OleDbCommand
    myCommand2.Connection = myConnection
    
    ' Query di inserimento
    Dim myINSERTQuery As String
    myINSERTQuery = "INSERT INTO Paziente (FotoPaziente,NomePaziente,CognomePaziente) VALUES (@FotoPaziente,@NomePaziente,@CognomePaziente)"
    myCommand2.Parameters.Add(New OleDbParameter("@FotoPaziente", Paziente.FotoPaziente))
    myCommand2.Parameters.Add(New OleDbParameter("@NomePaziente", Paziente.NomePaziente))
    myCommand2.Parameters.Add(New OleDbParameter("@CognomePaziente", Paziente.CognomePaziente))
    
    ' Esegue la Query di inserimento
    myCommand2.CommandText = myINSERTQuery
    myCommand2.ExecuteNonQuery()
    Credo che il tutto dipendesse dal Comando "Parameters.Add" che aggiunge a cascata i parametri nella stringa...
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  3. #3
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Occhio che OleDb non supporta i parametri nominativi, ma solo posizionali. Dargli un nome '@nomeparametro' può aiutarti, ma devi poi necessariamente valorizzarli nell'ordine in cui li hai dichiarati.
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  4. #4
    Hai perfettamente ragione. Io questa cosa non la sapevo ma... alla fine l'ho capita! Facendo un po' di prove e spostando l'ordine delle dichiarazioni dei vari parametri mi sono accorto che faceva un po' di casino...
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

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.