PDA

View Full Version : تبدیل System.byte به int یا long



jas1387
یک شنبه 05 اردیبهشت 1389, 10:48 صبح
سلام دوستان عزیز

من از یه دیتابیسی از سرور (سایت ) اطلاعات می خوانم و اون رو توی دیتابیس sql server ذخیره می کنم

حالا من با یه فیلدی توی جدولم سرورم روبرو شدم که کد امنیتی تولید می کنم و وقتی اینجا اون دریافت می کنم به صورت System.byte حالا من می خواهم اون به صورت عدد در بیارم

بزارید سوالم رو این جور مطرح کنم

آقا من می خواهم System.byte را به int یا long تبدیل کنم ، چه کار باید بکنم ؟


ممنون

behnam25214
یک شنبه 05 اردیبهشت 1389, 10:57 صبح
از ()Convert.toint استفاده کن.ببین جواب میده.

jas1387
یک شنبه 05 اردیبهشت 1389, 11:06 صبح
عزیزان این خطا را میده


Object cannot be cast from DBNull to other types.

mohammad meta
یک شنبه 05 اردیبهشت 1389, 11:09 صبح
چون به احتمال زیاد مقدار درون convert مقدار null است .

jas1387
یک شنبه 05 اردیبهشت 1389, 11:15 صبح
درسته دوست عزیز من اطلاعات null را حذف کردم

با این حال خطای زیر را میده


Unable to cast object of type 'System.Byte[]' to type 'System.IConvertible'.

mohammad meta
یک شنبه 05 اردیبهشت 1389, 11:29 صبح
حالا شما آرایه ای از بایت دارید . خوب هر عضو این آرایه را بوسیله حلقه تبدیل کنید به int

jas1387
یک شنبه 05 اردیبهشت 1389, 11:32 صبح
دوست عزیز میشه با کد بیشتر توضیح دهید

ممنون می شوم

mohammad meta
یک شنبه 05 اردیبهشت 1389, 11:38 صبح
foreach (Byte item in your byte array)
{
MessageBox.Show(Convert.ToInt32(item).ToString());
}

jas1387
یک شنبه 05 اردیبهشت 1389, 13:05 عصر
سلام دوست عزیز

هنوز مشکل من حل نشده

من این کد را نوشتم




foreach(byte item in dt.Rows[i].ItemArray[5])
{
MessageBox.Show(Convert.ToInt32(item).ToString());
}

ولی این خطا را میده ، چرا ؟




foreach statement cannot operate on variables
of type 'object' because 'object' does not contain
a public definition for 'GetEnumerator

mohammad meta
یک شنبه 05 اردیبهشت 1389, 13:45 عصر
دوست عزیز می دونید مشکل کجاست !!
ItemArray آرایه ای از object برمی گرداند شمانباید از آن استفاده کنید
به جاش از

(byte[])NewsDT.Rows[0].Column["Heading"]

s.khoshfekran
یک شنبه 05 اردیبهشت 1389, 13:46 عصر
خب یه شرظ بزار که اگه Null نبود به int تبدیل کنه!!

jas1387
دوشنبه 06 اردیبهشت 1389, 08:21 صبح
سلام بر دوستان عزیز

حالا بدون خطا عدد را بر می گردون ولی عدد در مبنای 10 نیست در صورتی که اول عدد من 1 هست اون 50 به من بر می گردونه چرا باید بکنم ؟

دستوری داریم که این کار را بکنه یا اینکه با از switch case استفاده کنم ?

jas1387
دوشنبه 06 اردیبهشت 1389, 10:39 صبح
سلام

از اساتید کسی نیست به من کمک کنه ؟ عجله ای هست ( ممنون میشم )

mohammad meta
دوشنبه 06 اردیبهشت 1389, 11:39 صبح
.آقا کل عددی که به بایت چند ؟
عدد به بایت برام بفرست.

jas1387
دوشنبه 06 اردیبهشت 1389, 12:06 عصر
عدد به بایت این هست

50504949515352

ولی من این عدد را می خواهم

2211354

mohammad meta
دوشنبه 06 اردیبهشت 1389, 12:20 عصر
از این استفاده کن
b آرایه ای از بایت .

int x = BitConverter.ToInt32(b, 0);