PDA

View Full Version : سوال: خطا Value was either too large or too small for an Int32



rayson
سه شنبه 26 شهریور 1392, 21:44 عصر
سلام دوستان .
من هنگام ذخیره داده ای که نوع اینتیجر هست با این خطا روبرو میشوم ، که به من میگه مقدار یا کوچک یا بزرگ تر از حد مجاز است .
خانه ای که در دیتا بیس این مقدار عددی را میخواهد ثبت کند از نوع BigInt میباشد .
لطفا راهی مناسب به من راهنمایی کنید.
با تشکر.
http://www.uploadtak.com/images/z1923_errorINT.jpg

R_khaleghi
سه شنبه 26 شهریور 1392, 22:51 عصر
سلام دوستان .
من هنگام ذخیره داده ای که نوع اینتیجر هست با این خطا روبرو میشوم ، که به من میگه مقدار یا کوچک یا بزرگ تر از حد مجاز است .
خانه ای که در دیتا بیس این مقدار عددی را میخواهد ثبت کند از نوع BigInt میباشد .
لطفا راهی مناسب به من راهنمایی کنید.
با تشکر.
http://www.uploadtak.com/images/z1923_errorINT.jpg

سلام.
اون قسکتی که تبدیل به int32 کردین را به Float تبدیل کنید ببینید درست میشه.

موفق باشید.

rayson
سه شنبه 26 شهریور 1392, 23:17 عصر
بخش تبدیل : گزینه ّToFloat ندارد فقط ToDouble یا ToDecimal میتونم قرار بدم ولی زمانی به این دو مورد تبدیل میکنم خطا میگیرد خط و برنامه به حالت اجرا اصلا دیگه نمیتواند برود.

veniz2008
چهارشنبه 27 شهریور 1392, 00:15 صبح
سلام دوستان .
من هنگام ذخیره داده ای که نوع اینتیجر هست با این خطا روبرو میشوم ، که به من میگه مقدار یا کوچک یا بزرگ تر از حد مجاز است .
خانه ای که در دیتا بیس این مقدار عددی را میخواهد ثبت کند از نوع BigInt میباشد .
لطفا راهی مناسب به من راهنمایی کنید.
با تشکر.
http://www.uploadtak.com/images/z1923_errorINT.jpg


بخش تبدیل : گزینه ّToFloat ندارد فقط ToDouble یا ToDecimal میتونم قرار بدم ولی زمانی به این دو مورد تبدیل میکنم خطا میگیرد خط و برنامه به حالت اجرا اصلا دیگه نمیتواند برود.
سلام.
مورد اول اینکه عکست رو روی خود برنامه نویس آپلود کن چون سایتی که میزاری از لحاظ امنیتی مشکل داره پسر (قبلا هم این نکته رو بهت گفته بودم).
اما جواب سوالت: نوع int (یا همون int32) بین محدوده 2,147,483,647 تا 2,147,483,648- رو پشتیبانی میکنه. اگر عددی کمتر از این بازه یا بیشتر از این بازه بهش بدی خطای مذکور رو مشاهده میکنی.
این کدها رو تست کن :

string a = "3000000000";
MessageBox.Show(Convert.ToInt32(a).ToString());
یا :

string b = "-3000000000";
MessageBox.Show(Convert.ToInt32(b).ToString());
برای رفع مشکل میتونی از یه بازه بزرگتر مثل int64 استفاده کنی.
موفق باشی.

rayson
چهارشنبه 27 شهریور 1392, 00:38 صبح
مرسی مشکل بر طرف نشد باید یک محدودیت در عدد وارد شده قرار بدم مثلا تا 9 رقم عدد بگیرد.
در مورد اون آپلود هم بله درسته شما گفتید ولی سایت کدام بخش باید برم آپلود کنم ، من قبلا برروی گزینه وارد نمودن عکس که میزدم این قابلیت وجود داشت که تصویر را آپلود کنم از خود سایت اما الان دیگر نمیتونم .
من برروی int64 که قرار میدم خط مورد نظر خطا میدهد.
از آن رو که من درون دیتابیس از نوع BigInt استفاده کردم به این فکر بودم که شاید این امکان وجود داشته باشد هنگام تبدیل هم با نوع BigInt تبدیل را انجام داد.
مرسی.

FastCode
چهارشنبه 27 شهریور 1392, 01:00 صبح
int codeOzviat = 0;
codeOzviat = 0;
codeOzviat = ....
رو پاک کن.سه بار مقدار دادی.هیچ کدومش به درد نمیخوره.
long MemberID;

MemberID = (long)dt.Rows[i].ItemArray[0];