Quando si lavora con query parametriche o stored procedure (ed andrebbe sempre fatto, dato che rende nulli i rischi derivanti da attacchi di SQL injection) spesso si ha la necessità di specificare come valore di un parametro NULL, assegnando alla proprietà Value il valore dato da DBNull.Value.
Sebbene sia possibile attraverso una semplice condizione, è certamente più pratico creare una funzione di aiuto come la seguente:
public static IDataParameter CheckNull(IDataParameter param, string value) { if (value == null || value == String.Empty) param.Value = DBNull.Value; else param.Value = value; return param; }
Ed ecco come usare la nostra funzione:
// uso una stringa vuota string s1 = String.Empty; // definisco il parametro e passo il valore alla funzione SqlParameter p1 = new SqlParameter("@text", SqlDbType.VarChar, 250); p1.Value = CheckNull(p1, s1);
La funzione helper, che andrà salvata in una classe helper, funziona indistintamente con qualsiasi tipo di parametro, dato che utilizza l'interfaccia IDataParameter che ogni managed provider implementa nel Parameter definito localmente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.