PDA

View Full Version : مشکل در تبدیل String به Integer



rtech
یک شنبه 26 فروردین 1386, 13:22 عصر
سلام دوستان
من از کد زیر برای تبدیل داده رشته ای به integer استفاده کردم :




Dim A as integer
a=CInt(textbox1.text)


ولی ارور زیر را دریافت میکنم :



Conversion from string "" to type 'Integer' is not valid.

titbasoft
یک شنبه 26 فروردین 1386, 13:49 عصر
استرینگ شما نمی تونه خالی باشه

Alireza_Salehi
یک شنبه 26 فروردین 1386, 14:16 عصر
خالی هم میتونه باشه ، البته با این کد :


Dim a As Int32
Int32.TryParse(TextBox1.Text, a)

اگر قابل تبدیل نباشه (خالی باشه یا غیر عددی باشه یا از حد مینیمم یا ماکزیمم تجاوز کرده باشه) مقدار صفر در متغییر a قرار میگیره .

این متد اگر تبدیل به صور صحیح انجام بشه True برمیگردونه که میتونی با یک شرط اون رو چک کنی و عمل مورد نظر رو انجام بدی.


Dim a As Int32
If Int32.TryParse(TextBox1.Text, a) Then
'Conversion succeeded
Else
'Conversion failed
EndIf



Int32.TryParse Method (http://msdn2.microsoft.com/en-us/library/system.int32.tryparse.aspx)

همه انواع داده ای این متد رو دارند.

rtech
دوشنبه 27 فروردین 1386, 16:04 عصر
مگه میشه خالی باشه من توی تکست باکس عدد وارد میکنم پس چرا میگه نمیتونه رشته خالی رو تبدیل کنه ؟

Alireza_Salehi
دوشنبه 27 فروردین 1386, 21:03 عصر
یعنی شما عدد وارد کردید (داخل تکست باکس چیزی بوده) و این Exception رو ایجاد کرده ؟

متن موجود حتما قبل از این که به متد مورد نظر برسه از بین میره !!!! چرا شو باید در کد شما جستجو کرد!!!!

eberham
دوشنبه 27 فروردین 1386, 23:00 عصر
چرا از ctype استفاده نمی کنی

dim a as integer
(a= ctype (text1.text,integer

__H2__
چهارشنبه 29 فروردین 1386, 16:53 عصر
سلام،


چرا از ctype استفاده نمی کنی

dim a as integer
(a= ctype (text1.text,integer

عزیزجان استفاده از دستور CType برای Integer ها مطلقاَ تفاوتی با CInt نداره.

ضمنا من هم با نظر کاربر rtech موافق هستم، یعنی شما عددی وارد کردید و باز خطا داد ؟!؟!؟! متن پیغام خطا کاملاَ واضح است که میگوید رشته ورودی خالی بوده.

rtech
چهارشنبه 29 فروردین 1386, 20:11 عصر
حالا به نظر شما باید باید چی کار کرد ؟

rtech
چهارشنبه 29 فروردین 1386, 20:13 عصر
من از این کدی که دوست عزیزمون داده بودن استفاده کردم که سیستمم هنگ میکنه و باید با دست ریستش کنم :



Dim a As Int32
Int32.TryParse(TextBox1.Text, a)


و این خیلی جالبه !!!

rtech
چهارشنبه 29 فروردین 1386, 20:14 عصر
تاحالا به چنین مشکلی بر نخورده بودم !

bidad
جمعه 31 فروردین 1386, 03:01 صبح
قاعدتا هیچ مشکلی نباید وجود داشته باشه جز اشتباه تو برنامه!
بهتره کدت رو بزاری تا ببینیم.

linux
جمعه 31 فروردین 1386, 03:22 صبح
اگر بیشتر از 1 تکست باکس داری ممکن نام تکست باکس را اشتباه گرفتی!

__H2__
شنبه 01 اردیبهشت 1386, 10:55 صبح
سلام
اگر بعد از این همه توضیح، هنوز مشکل دارید.
برای حل کامل این مشکل فوق العاده مسخره، کدهایتان یا حداقل یک برنامه نمونه را که همین مشکل را دارد Upload کنید.