Коментарът на Джо Зак е това, което ми помогна да разбера какво се случва тук. Много ясно и кратко обяснение. Това трябва да е отговорът, за да бъде по-видим за хората, които пристигат тук от търсене с Google.
SqlCommand извиква sql с параметри чрез sp_executesql, когато има параметри, което означава, че вашата временна таблица се създава в (и след това се почиства в) съхранена процедура, така че да не е достъпна за бъдещи повиквания - дори когато споделят една и съща връзка