you catch one
Regice can not be caught in HeartGold or SoulSilver. It can however be caught in Platinum, Ruby/Sapphire, and Emerald.
Transfer from Ruby, Sapphire, or Emerald.
you have to trade from diamond or pearl
Nope. just by transfer.
You can't get it naturally, you have to trade from another game or pal park
You cannot catch any of the Regis (Regirock, Regice, Registeel and Regigigas) in Pokémon HeartGold or SoulSilver.
You cannot capture it ingame. You can have one, however, if you trade it over from Ruby, Sapphire, or Emerald.
You cant find it in soulsilver/heartgold. You have to trade it/migrate from platinum, ruby and saphire.
u don't get regice on Pokemon pearl
You can't get Regigigas in Pokemon Soulsilver or Heartgold. However, Regigigas is available in Pokemon Diamond, Pearl, and Platinum by obtaining Regice, Regirock, and Registeel. Once you have done that, you can take all three of them to the Snowpoint Temple in Snowpoint City to battle a lv.1 Regigigas.
You can't... without Action Replay. I do not know a legit way to get Regice (along with Registeel and Regirock) The only Regi I know how to get legit is Regigigas, which needs Regirock Regice and Registeel. If you know a legit way to get Regirock Regice and Registeel, edit this answer. actually you can. all you have to do is send Pokemon from ruby, or Sapphire to dimond or pearl or platinum. then trade it to soul silver.
The only way to get Regice on pokemon diamond is to transfer them from Ruby, Emerald, or Sapphire.