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

    Complicazioni con la conversione dei dati

    allora questa volta è la conversione dei dati a darmi noia...
    ho due textbox che possono contenere al massimo 3 caratteri dove inserirò dei voti da 0 a 10 (con la possibilità di mettere anche 6.5 e via dicendo)
    questi dati recuperati devono essere sommati !
    per far ciò io ho recuperato i dati cosi
    nel primo textBox

    Dim mediavotoTotale as double
    mediavotoTotale = mediavotoTotale + CDbl(Request.Form(risultato))

    e nel secondo ho fatto la stessa cosa (perchè il nome del textBox è preso da un ciclo for)

    mediavotoTotale = mediavotoTotale + CDbl(Request.Form(risultato))

    ecco l'errore
    System.FormatException: Formato della stringa di input non corretto.

    e la riga imputata è ....
    mediavotoTotale = mediavotoTotale + CDbl(Request.Form(risultato))


    premetto che l'errore esce anche quando inserisco un valore come 6 oppure 6.5 oppure 6,5

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Prova così e dimmi se funziona (Per il momento prova solo con numeri interi):

    mediavotoTotale = mediavotoTotale + CDbl(risultato.Text)

    Hey hey, my my Rock and roll can never die!

  3. #3
    niente mi dice che

    "Text" non è un membro di "String".

    risultato viene utilizzato all'interno di un ciclo for che itera all'interno di tutti i textBox presenti nel form

    FOR Each risultato in Request.Form
    IF Instr(risultato , "_" ) > 0 then
    valoreControllo = INSTR(risultato, "_" , 0)
    valoreID = MID(risultato , valoreControllo+1)

    Dim mediavotoTotale as double

    IF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Presenza") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Ammonizioni") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Espulsioni") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "GolFatti") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Autogol") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "VotoGazzettino") > 0 Then
    mediavotoTotale = mediavotoTotale + Cdbl(risultato.Text)
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "VotoMessaggero") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    end if

    end if


    Next

    praticamente ogni textBox contiene un _ alla destra del quale c'è l'id del records recuperato da un dataGrid

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    ank'io avevo un problema del genere ..
    controlla se nn hai kiamato con lo stesso nome un TextBox e una variabile..

  5. #5
    direi di no questa è la sub che viene invocata quando clicco sul pulsante per inserire i dati (ovviamente ancora non ho implementato le query sul db)

    sub elabora(obj as object, e as eventArgs)
    dim risultato as string
    dim valoreID as string
    dim valoreControllo as integer
    FOR Each risultato in Request.Form
    IF Instr(risultato , "_" ) > 0 then
    valoreControllo = INSTR(risultato, "_" , 0)
    valoreID = MID(risultato , valoreControllo+1)

    Dim mediavotoTotale as double

    IF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Presenza") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Ammonizioni") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Espulsioni") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "GolFatti") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "Autogol") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "VotoGazzettino") > 0 Then
    mediavotoTotale = mediavotoTotale + Cdbl(risultato.Text)
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    ELSEIF INSTR(risultato, valoreID) > 0 AND INSTR(risultato, "VotoMessaggero") > 0 Then
    lblMessage.Text = lblMessage.Text &" "& Request.Form(risultato)
    end if

    end if


    Next
    end sub

    il problema è che i dati lui li recupera e me li stampa correttamente se evito di utilizzare i vari cast !!!
    ho provato una valanga di soluzione CTYPE() e un'altra miriade di cose ma niente

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Scusa, esavo che risultato fosse una textbox.

    Sinceramente non capisco a cosa serva il codice, percui mi è difficile aiutarti, prova a scrivere un esempio del testo che potrebbe essere contenuto in risutato.

    Stai facendo un sito di Fantacalcio?

    Hey hey, my my Rock and roll can never die!

  7. #7
    praticamente i nomi dei textBox vengono generati dinamicamente e prendono il nome Ammonizione_IDRECORDS e via dicendo!
    io allora devo recuperare i vari dati e inserirli in una tabella giocatori già pronta ad ospitare i dati!
    la cosa che mi da piùfastidio è che i dati se evito la conversione vengono stampati nella label lblMessage (che uso solo adesso per fare i test )

  8. #8
    piccolo aggiornamento se associo ad una variabile di tipo string il valore recuperato dal textBox votoGazzettino tutto va bene !
    il problema si presenta proprio quando tento un qualche tipo di conversione (anche con l'integer crea problemi)
    ho provato a fare anche un ToInt32 ma niente

  9. #9
    ecco la soluzione praticamente ho impostato al posto di un input box un select con i valori da 1 a 10 passando per 1.5 2.5 e via dicendo!
    quando lo recupero faccio un if o un case che mi confronta il valore di request.form e a seconda della stringa contenuta imposto una variabile di tipo double con il valore corrispondente a quello contenuto nel select !
    e funziona che ne dite?

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.