Enviar un null a un procedimiento almacenado C#
Supongamos que en este ejemplo que a la variable «sistema» se le puede enviar un valor null.
la forma correcta es enviar un DBNull
sqlparam[1].Value = DBNull.Value;
y no
sqlparam[1].Value = null;
por ejemplo.
public DataSet ListaUsuarios(string rut,string sistema)
{
SqlParameter[] sqlparam = new SqlParameter[2];
sqlparam[0] = new SqlParameter("@rut", SqlDbType.VarChar, 10);
sqlparam[0].Value = rut;
sqlparam[1] = new SqlParameter("@Sist", SqlDbType.VarChar, 50);
if (sistema.Trim() != "") {
sqlparam[1].Value = sistema;
}else{
sqlparam[1].Value = DBNull.Value;
}
return ExecuteProcedureSqlServerToDataSet("SpListaUsuarios", sqlparam);
}