PDA

View Full Version : تبدیل string به int



neda555
چهارشنبه 09 فروردین 1391, 13:13 عصر
سلام
داخل lable یک مقدار string دارم الان می خوام با عدد جمعش کنم ولی هر جور تبدیلش میکنم ارور میده


Label5.Text = Label5.Text + 10400;

hamid_shrk
چهارشنبه 09 فروردین 1391, 13:14 عصر
اول باید convert کنی :

Label5.Text =(Convert.toInt32(Label5.Text) + 10400).ToString();

mohsen.nsb44
چهارشنبه 09 فروردین 1391, 14:15 عصر
TextBox1.Text = (int.Parse(Label8.Text) + 100).ToString();

mohsen.nsb44
چهارشنبه 09 فروردین 1391, 14:17 عصر
سلام
داخل lable یک مقدار string دارم الان می خوام با عدد جمعش کنم ولی هر جور تبدیلش میکنم ارور میده


Label5.Text = Label5.Text + 10400;


مقدار لیبل از نوع رشته هستش و 10400 از نوع عددی وقتی دو نوع متفاوت داری باید به یک فرمت یکسان تبدیل کنی مثلا هر دو رو به مقدار عددی
اینجا 10400 عددی هستش پس میمونه مقدار label5 که رشته ای هستش به عددی تبدیل بشه

neda555
چهارشنبه 09 فروردین 1391, 15:21 عصر
ممنون دوستان فراموش کردم آخرش tostring کنم:لبخندساده:

neda555
یک شنبه 13 فروردین 1391, 00:13 صبح
مشکلم حل نشد
من از این کد برای سبد خرید در جمع یک مقدار ثابت با چیزی که در دیتا بیس ذخیره میشه استفاده کردم وقتی سبد را خالی میکنم ارور میده:
Input string was not in a correct format.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: Input string was not in a correct format.

hamid_shrk
دوشنبه 14 فروردین 1391, 19:21 عصر
کدی که نوشتید چیه؟
بذارید تا بررسی کنم

neda555
شنبه 19 فروردین 1391, 16:59 عصر
سلام من all_price را از نوع int تعریف کردم الان این کد را چه طور تغییر بدم که وقتی سبد خالی میشه ارور نده؟
SqlCommand cm = new SqlCommand("select Sum (all_price) from vsabad where SessionID='" + Session.SessionID + "'", cn);

string am = cm.ExecuteScalar().ToString();
if (q == "1" || q == "2" || q == "3")
{
Panel1.Visible = true;

Label5.Text = (Convert.ToInt32(am) + 10400).ToString();

sarapepors
شنبه 19 فروردین 1391, 19:56 عصر
کدی که نوشتین برا مقدار دهی به label که اشکالی نداره خوب چک کنید ببینید مقداری که ازدیتا بیس میخونید و میریزتش توی am چیه شاید عدد نباشه یه breakpoint بزارید برا این قسمت کدتون مقداریو که از دیتابیس میخونید چک کنید.

neda555
شنبه 19 فروردین 1391, 20:17 عصر
مقداری که می خونه int هست تابع sum تعریف کردم باید int باشه دیگه
حالا اونجا که میام am را int تعریف میکنم و ... int am = cm.ExecuteScalar(); اینجا ارور میگیره

sarapepors
شنبه 19 فروردین 1391, 20:26 عصر
به جای convert.toint32 از


int.Parse(am)
استفاده کنید.
البته به شرط این که am از نوع رشته باشه

neda555
شنبه 19 فروردین 1391, 20:31 عصر
دوست عزیز بازم ارور داد
میشه کامل کدها را بنویسید یه بار

hamid_shrk
شنبه 19 فروردین 1391, 20:50 عصر
از کد زیر استفاده کنید :

int? id = (int?)command.ExecuteScalar();
if(id.HasValue)
{
// use id.Value
}

neda555
شنبه 19 فروردین 1391, 20:58 عصر
لطفا با همون کد خودم نشون بدین چون شاید من جایی اشتباه کنم
حالا این قسمت که می خوام داخل lable مقدار int را بزارم چه طور تغییر بدم؟
Label5.Text =( am + 10400).ToString();

hamid_shrk
شنبه 19 فروردین 1391, 21:29 عصر
Label5.Text =( am + 10400).ToString();
رو تو شرط if بذارید و
Label5.Text =10400.ToString();
رو تو else
همین

neda555
شنبه 19 فروردین 1391, 21:43 عصر
کد کاملم:
الان ارورش روی خطی هست که نشون دادم:
Specified cast is not valid.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


SqlCommand cm = new SqlCommand("select Sum (all_price) from vsabad where SessionID='" + Session.SessionID + "'", cn);

int? am = (int?)cm.ExecuteScalar();


if ( q == "1" || q == "2" || q == "3")
{
Panel1.Visible = true;


if (am.HasValue)
{
Label5.Text = (am + 10400).ToString();
}
else
Label5.Text = 10400.ToString();

}

else if (q == "4" || q == "5")
{
Panel1.Visible = false;
Label5.Text = am.ToString();
}
cn.Close();
}
else
Response.Redirect("Error.aspx");
}

نهایتا باید مقدار lable5 که جمع مقادیره را آپدیت کنم و نوعش را در دیتابیس از نوع int تعریف کردم

hamid_shrk
شنبه 19 فروردین 1391, 22:04 عصر
شما میشه با break point بررسی کنی ببینی چه مقداری داره برمیگردونه؟
لطفا انجام بدید و حدس نزنید چون امکان داره null برگردونه

neda555
شنبه 19 فروردین 1391, 22:19 عصر
من نمیدونم چه طور از break point استفاده کنم
تا قبل از اینکه مقدار ثابت 10400 را اضافه کنم جواب میداد و سبد خالی میشد

hamid_shrk
شنبه 19 فروردین 1391, 23:37 عصر
با کلیک به جایی که اشاره کردم break point ایجاد میشه ، قبل از هر خطی که میخواید اینکار رو بکنید و پروژه رو اجرا کنید.


85415

مشکلتون اینه که مقدار null داره برمیگردونه و null رو نمیتونه تبدیل کنه

neda555
یک شنبه 20 فروردین 1391, 10:10 صبح
بعد باید چه طور بفهمم مقدار null برمیگردونه؟
و اگر null برمیگردوند چه کارش کنم؟؟

hamid_shrk
یک شنبه 20 فروردین 1391, 19:12 عصر
با یک شرط if میتونید بررسی کنید :
if(value==null)
و اگر null بود شما فقط عدد رو بریزید تو label.

neda555
یک شنبه 20 فروردین 1391, 19:58 عصر
الان مقدار چی را بررسی کنم null هست یا نه؟
اگر سبد خالی بشه label5 هم باید خالی بشه چون من یک سری محصولاتم هستن که این هزینه ثابت بهشون اضافه نمیشه
وقتی 10400 را اضافه نکنم مشکل نداره همین قسمت کد هست که ایراد داره:ناراحت:

hamid_shrk
یک شنبه 20 فروردین 1391, 20:05 عصر
object result = cm.ExecuteScalar();
if (result == null)
{

}

neda555
یک شنبه 20 فروردین 1391, 21:09 عصر
ممنون که راهنمایی میکنید
موقع خالی کردن سبد روی object result=cm.ExecutScalar(); ارور گرفت:Specified cast is not valid.

raziee
دوشنبه 21 فروردین 1391, 09:09 صبح
@neda555 :
لطفا مقالات مربوط به دسترسی به پایگاه داده را مطالعه کنید.
این تاپیک به دلیل خارج شده از موضوع تاپیک قفل شد.