レスありがとう。

や、型は(ほんの少しだけど)わかるんよ。
だけど最初の

no = (int)Session[keyname];
no = Convert.ToInt32(Session[keyname]);
no = Int32.Parse(Session[keyname]);

結果が同じなら(私が好きという理由で)Convert.To()を使えばいい話なんだけど、「結果が違う」とか言われると…しかもどんな場合に結果が違うのかがわからん…