So, der Reihe nach.
Das ist ganz, ganz schlechter Stil. Stichwort: SQL Injection
Dinge benutzen die man nicht versteht ist immer schlecht.
Das ganze nennt sich Conditional Operator.
Zur Ursprungsfrage:
Wenn Du deine Querys sauber parametrisiert hast kannst Du sowas machen:
myCommandObject.Parameters.AddWithValue("@secret", string.IsNullOrWhiteSpace(secret) ? (object)DBNull.Value : secret);
Was es tut:
Der Conditional Operator prüft ob der String secret null, empty oder whitespace ist und übergibt in dem Fall DBNull.Value und falls er es nicht ist den String an den Parameter. Der Cast auf object ist notwendig da der Conditional Operator den Typen nicht erkennt, beide aber von object abgeleitet sind und damit die Generalisierung greift.