PDA

View Full Version : سوال: the conversion of the nvarchar value overflowed an int column



ATalebD99
پنج شنبه 22 آبان 1393, 15:45 عصر
سلام برنامه ای داریم که کد ملی را گرفته و اجازه ورود می دهد. کدهای ملی و رمز ورود در جدولی با مشخصات meli nchar(10) allow null pass nchar(10) allow null ذخیره می شود در حالت عادی مشکلی نیست ولی اگر ابتدای شماره ملی صفر نباشد زمان اجرای دستور SqlDataReader.Read پیام زیر دریافت می کنیم the conversion of the nvarchar value overflowed an int column ضمنا دستور اس کیوال زیر را داریم: select meli, shob, pw from personel where meli = + txt_meli.Text.ToString

parvizwpf
پنج شنبه 22 آبان 1393, 17:38 عصر
شما از like استفاده کنید و تست کنید:
select * from personel where meli like +txt...

ATalebD99
شنبه 24 آبان 1393, 19:00 عصر
دوستانی که این مشکل را داشتید:
اگر چنانچه فیلد مورد نظر را nchar انتخاب کرده باشید. متاسفانه sql زمان بازیابی آنرا به int تبدیل می کند بنابراین اگر در این فیلد عددی بالای دو میلیارد واردکنیم خطای سرریز داریم. بنابراین بهترین راه انتخاب nvarchar است.

saeed410
شنبه 24 آبان 1393, 20:24 عصر
سلام دوست عزیز. زمانی که صفر اول شماره ملی هست در واقع فیلد شما int هست. ولی وقتی اولش غیر صفر باشه فیلد شما باید bigint باشه. خطا هم همینو میگه.میگه عدد صحیح شما باعث سرریز شدن میشود. nchar(11) شاید درست کنه مشکل رو.