Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema con nuovo record (VB)

    Ciao a tutti,
    ho un grosso problema con questa routine che mi serve per aggiungere un nuovo utente in un DB MySQL.
    Il problema è grosso nel senso che una volta inviato il Form vengono aggiunti 2 record invece che 1. Cioè il record viene sdoppiato e non capisco per quale motivo visto che non effettuo strane operazioni.
    Mi sapete dire come posso correggere il problema?
    GRAZIE

    Sub Add_Confirm(Sender As Object, E As EventArgs)

    'recupero dati panel1 per aggiunta nuovo utente
    Dim pNome, pCat, pCod, pScad, pData1, pData2, pTel As String
    pNome = TextBox1.Text
    pCat = TextBox2.Text
    pCod = TextBox3.Text
    pScad = TextBox4.Text
    pData1 = TextBox5.Text
    pData2 = TextBox6.Text
    pTel = TextBox7.Text

    Dim gg, mm, aa, All As String
    gg = day(pScad)
    mm = month(pScad)
    aa = year(pScad)
    All = aa & "-" & mm & "-" & gg
    pScad = All.ToString


    Dim Insert As String = "INSERT INTO Quiz (Nome, Cat, Cod, Scad_FR, Data_Ultimo, Data_Pren, Tel) VALUES ('" & pNome & "', '" & pCat & "', '" & pCod & "', '" & pScad & "', '" & pData1 & "', '" & pData2 & "', '" & pTel & "')"

    Dim Con As New OdbcConnection(ConnectionString)
    Dim Cmd As New OdbcCommand(Insert, Con)

    Try
    Con.Open()
    Cmd.ExecuteNonQuery()

    Catch ex as Exception
    Message.Text = "Si verificato un errore. Controlla che i dati inseriti siano corretti."

    Finally
    Con.Close()

    End Try


    DataGrid1.CurrentPageIndex = 0
    DataGrid1.EditItemIndex = -1
    BindGrid()

    End Sub

  2. #2
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Dove lanci la Sub?
    Usi Visual Studio.NET?
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  3. #3
    La Sub la richiamo col seguente bottone:

    <asp:Button id="Button1" runat="server" onclick="Add_Confirm" Text="Conferma" />

    Non uso Visual Studio.NET... è codice scritto manualmente col blocco note

  4. #4
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Allora non so come aiutarti, sapevo di un paio di errori causati dall'uso di Visual Studio e dalla gestione dell'evento PageLoad....

    Prova a fare un Debug Passo-passo per verificare che il tuo metodo non venga lanciato due volte per qualche motivo...
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  5. #5
    Il metodo non viene lanciato 2 volte perkè quando faccio un response.write della stringa SQL viene stampata una sola volta.

    Se venisse richiamato 2 volte dovrei vedere la query stampata 2 volte no?

  6. #6
    Nessuno sa indirizzarmi verso la retta via? :master:

  7. #7
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Io ti consiglio di utilizzare una bella utility di Debug per verificare passo-passo quello che il programma esegue.
    Ad esempio potrebbe darsi che in due momenti diversi tu abbia detto di indirizzare un particolare evento al Sub... Il codice, come lo hai scritto, dovrebbe funzionare correttamente, è molto semplice e posso solo ipotizzare che si tratti di un problema a monte...

    Se non ti va di debuggare fai questa prova:

    Inserisci una Label con testo "0";
    quando entri nella sub cambia il testo in "1";
    prima di lanciare la query verifica che la label contenga "0"...
    Attenzione a settare il testo iniziale della Label solo se la pagina NON è Post-backata; altrimenti non funziona...

    Se con queste modifiche funziona bene vuol dire che la sub viene lanciata due volte...

    E' una soluzione orribile , ma non mi viene in mente altro (debug a parte...)

    fammi sapere
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  8. #8
    Scusa ma non ho capito bene a cosa dovrebbe servirmi il discorso del tag LABEL.

    Se quando entro nella sub imposto il valore a "1" come faccio a controllare prima di lanciare la query che il valore sia "0" ? :master:

  9. #9
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Ho scritto male:

    1. Crea la label con testo "0";
    2. All'interno della Sub, lancia la query solo se Label contiene "0";
    3. Dopo il lancio della query, nella riga subito dopo, imposta la Label a "1"...

    In questo modo eviti di fare la query due volte... è solo un metodo per vrificare il problema, non per risolverlo...
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  10. #10
    Ho provato a mettere il form per l'inserimento dei dati più la relativa sub in una pagina a parte alla fine della sub un redirect alla pagina che mostra i dati.
    In questo modo tutto funziona correttamente.
    Solo ke io vorrei mettere tutto in una pagina per questioni di comodita ma anche di estetica.

    Credo che il viewstate contribuisca al problema

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