Joe Zacks kommentar er det, der hjalp mig med at forstå, hvad der sker her. En meget klar og kortfattet forklaring. Dette burde være et svar, så det er mere synligt for folk, der ankommer her fra en google-søgning.
SqlCommand kalder sql med parametre via sp_executesql, når der er parametre, hvilket betyder, at din temp-tabel bliver oprettet inde i (og derefter rydder op i) en lagret procedure, så den ikke er tilgængelig for fremtidige opkald - selv når de deler den samme forbindelse