selam,
yukarıda ki örneklerin çoğunda kulagı neden tersten tuttunuz, daha fazla satır kod yazmak için mi :)
Ontedi fnSayisal_Mi metodun yerine integer tryparse metodunu neden kullanmayıp kocaman if else li metodlara gerek duydun ki.
ikinci olarak, gelen değer boşssa neden cn tanımlayıp bunu open yapıyorsunuz?
üçüncü olarak bodozlama baglanti.open, baglanti.close yazarsanız cn açık ise tekrar açmaya çalısırsanız proje patlar, cn nin durumunu kontrol edip bunu open close yapmayı deneyin.
dördüncü olarak Int16.Parse(Request.QueryString["id"].ToString()) metodunu kullanırsanız query stringten adam aaa vs gibi string bir değer girerse projenizi patlatır. bu kısımlarda int.tryparse metodlarını kullanabilirsiniz.
beşinci olarak bu derece patlamaya müsait kod yazan birisi olarak try cacht finaly bloklarını kullanmanızı tavsiye ederim.