Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582

    [vb.net 2005] (implicit conversion)

    codice:
    implicit conversione from "system.object" to long
    questo è l'errore che questa riga di codice mi da
    codice:
    i=IIf(IsDBNull(lettore.Item("MaxOfProgressivo")), 1, lettore.Item("MaxOfProgressivo"))

    lettore sarebbe un datareader

    come posso risolvere il problema?
    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    vb.net 2005 e ancora codice vb6...mah, cmq devi convertire il valore, specificare come deve ritornare poichè a priori non è in grado di rilevarlo, te lo dice, la variabile i di che tipo è? Il valore lo devi convertire esempio Convert.ToInt32 se integer, poi la sintassi è sbagliata xchè valuta l'intera espressione, se hai un valore Null verrà generato un errore.
    Ans.

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582
    ho risolto con
    option restrict false

    in pratica mi impediva di associare valori da parte di tipo di dati diversi


    p.s.
    ho gia testato con null, e va bene
    poi il datareaer pare che in visual studio 2005 non ha toint32, ma solo tostring
    per il codice vb6...guarda che va bene in 2005 le cose che ti credi mica sono cambiate!
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    in pratica mi impediva di associare valori da parte di tipo di dati diversi
    è giusto che sia così x impedire errori e bug nel codice.

    ToInt32 è nella classe Convert, come ho scritto, e non è un metodo del datareader.

    Il codice vb lo puoi utilizzare xchè di default è importato il namespace Microsoft.VisualBasic, x questioni di compatibilità con i vecchi programmi. Continuandolo ad usare si continuerà a scrivere codice vb misto a .net, non imparando a conoscere .net
    Ans.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    poi l'errore che dicevo su IIF, leggendo la documentazione il comportamento in vb.net è diverso rispetto a vb6, in vb6 viene valuta l'intera espressione e questo puo' provocare un errore indesiderato. Quindi anche un'istruzione di tipo "vecchio" ha un comportamento diverso, in sostanza non è detto che i comportamenti siano uguali anche x una stessa istruzione.
    Ans.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ans
    Il codice vb lo puoi utilizzare xchè di default è importato il namespace Microsoft.VisualBasic, x questioni di compatibilità con i vecchi programmi. Continuandolo ad usare si continuerà a scrivere codice vb misto a .net, non imparando a conoscere .net
    Mi associo totalmente, più che altro per il fatto che l'uso di certi costrutti consentiti in VB6, anche se "trasportati" per compatibilità all'indietro, possono ricondursi ad effetti collaterali se utilizzati con le nuove classi, come nel caso in esame.

    Personalmente, invito sempre ad essere prolissi (cosa che non dovrebbe disturbare chi usa un linguaggio molto verboso come VB), ad esempio risolvendo il caso in esame con un classico If...Then...End If, scrivendo 4 o 5 righe di codice invece di una, ma aumentando notevolmente la chiarezza espressiva del codice stesso, nonchè la sua leggibilità ed evitando spiacevoli effetti collaterali.

    Ciao a tutti!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.