به این دلیله که متد Convert.ToIn32 نمیتونه هر رشته ای رو به عدد تبدیل کنه مثلا رشته "ABCD" رو به چه عددی تبدیل کنه ؟
شما راحتترین و اصولی ترین کارتون اینه که کد های ملی رو با فرمت string ذخیره کنین ، هم راحت تره هم کاملا Safe هستش.
اگر دیتابیس به درستی طراحی نشده بهتره درستش کنین ، میتونین اون جدول رو Drop And Create کنین ، فقط قبلش بک آپ بگیرین.
ضمنا برای تعداد فرزندان درست اینه که مقدار عددی باشه ، چرا ؟ چون ممکنه روزی عملیات ریاضی بخواین انجام بدین ، مثلا جمع تعداد فرزندان کارمند ها یا هر چیز دیگه.
ولی در خصوص کد ملی اینطور نیست ، فقط یه رشته 10 رقمی از اعداده همین ، رشته میتونه کلید Unique هم باشه ، پس فیلد کد ملی شما میتونه از نوع رشته یا nvarchar(10) باشه و همزمان کلید و Unique باشه.