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?
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?
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
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
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.
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![]()
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:
quando il parametro ha valore 0-255 funziona da filtro,codice:cmd.Parameters.AddWithValue("@nomeparametro", nomevariabile > -1 ? nomevariabile : (object)DBNull.Value);
quando ha -1 diventa null e non filtra nella query
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
nn so, forse mi sono spiegato male.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:
quando il parametro ha valore 0-255 funziona da filtro,codice:cmd.Parameters.AddWithValue("@nomeparametro", nomevariabile > -1 ? nomevariabile : (object)DBNull.Value);
quando ha -1 diventa null e non filtra nella query
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).
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.
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
ok provo e ti dico allora!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.
grazie!!
ah ok capito ... pensavo si volesse solo evitare l'intera query e nn l'impostazione di un filtro, scusatemiOriginariamente inviato da Gluck74
ciao GabbOne,
....
codice:cmd.Parameters.AddWithValue("@nomeparametro", nomevariabile > -1 ? nomevariabile : (object)DBNull.Value);![]()
anzi ti dirò di piu da oggi in poi scrivero tutte le assegnazioni di questo tipo con l'istruzione condizionale
![]()