Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    si si ho capito il concetto.
    il problema è che sul db il campo è di tipo tinyint e in c# la corrispondenza è byte che nn può essere negativo.
    quindi, tenendo conto che nn posso modificare il db, che tipo posso usare in c# secondo te?

  2. #12
    se sul database quel parametro può avere valori negativi, usa int o int16
    come valore limite o scegli un valore impossibile (esempio -999, ma non è stiloso)
    o usi int16?, o usi string e converti nella funzione

  3. #13
    eh no è proprio quello il problema.
    quel campo sul db è tinyint e questo nn accetta valori negativi.
    il range va da 0 a 255.
    io per ora ho mesos un controllo impostando il valore 255 perchè so che è quasi impossibile che venga usato, però nn si può mai sapere.

  4. #14
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    chiedo venia ... ma nn è piu semplice utlizzare un RangeValidator appoggiato alla dropdownlist che imposta il tinyint in questione?

    in questo modo controlli sia lato client che il valore sia un tinyint mentre lato server devi nellìevento onselecting dell'objectdatasource verificare che Page.isValid sia vero altrimenti fai un bel e.canel ..

    spero di essere stato di aiuto

  5. #15
    ciao GabbOne,
    il range validator va bene per validare i dati "possibili" ovvero tra 0 e 255, e non è male come idea usarli sempre nelle form.
    Il problema nel caso di filtri però, sta nel fatto che ci deve essere un valore limite che non sta nel range valido, e serve per "dire" che il filtro non deve essere applicato.
    In questo caso io mettere appunto un bel -1 nel DDL.
    la crazione del parametro diventa quindi:

    codice:
    cmd.Parameters.AddWithValue("@nomeparametro", nomevariabile > -1 ? nomevariabile : (object)DBNull.Value);
    quando il parametro ha valore 0-255 funziona da filtro,
    quando ha -1 diventa null e non filtra nella query

  6. #16
    Originariamente inviato da Gluck74
    ciao GabbOne,
    il range validator va bene per validare i dati "possibili" ovvero tra 0 e 255, e non è male come idea usarli sempre nelle form.
    Il problema nel caso di filtri però, sta nel fatto che ci deve essere un valore limite che non sta nel range valido, e serve per "dire" che il filtro non deve essere applicato.
    In questo caso io mettere appunto un bel -1 nel DDL.
    la crazione del parametro diventa quindi:

    codice:
    cmd.Parameters.AddWithValue("@nomeparametro", nomevariabile > -1 ? nomevariabile : (object)DBNull.Value);
    quando il parametro ha valore 0-255 funziona da filtro,
    quando ha -1 diventa null e non filtra nella query
    nn so, forse mi sono spiegato male.
    se faccio come dici mi da errore perchè nel db quel campo NON può essere negativo.
    se io metto -1 ottengo un errore (in questo caso dove il campo è tinyint).

  7. #17
    infatti nel database NON deve arrivare il valore -1.

    la riga di codice che ti ho scritto controlla proprio questo.
    Quando il valore passato dalla DDL è -1, tu al parametro della query devi passare NULL.

  8. #18
    Originariamente inviato da Gluck74
    infatti nel database NON deve arrivare il valore -1.

    la riga di codice che ti ho scritto controlla proprio questo.
    Quando il valore passato dalla DDL è -1, tu al parametro della query devi passare NULL.
    ok provo e ti dico allora!
    grazie!!

  9. #19
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Originariamente inviato da Gluck74
    ciao GabbOne,
    ....
    codice:
    cmd.Parameters.AddWithValue("@nomeparametro", nomevariabile > -1 ? nomevariabile : (object)DBNull.Value);
    ah ok capito ... pensavo si volesse solo evitare l'intera query e nn l'impostazione di un filtro, scusatemi

    anzi ti dirò di piu da oggi in poi scrivero tutte le assegnazioni di questo tipo con l'istruzione condizionale



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.