PDA

View Full Version : مشکل در تبدیل رشته به عدد صحیح



yuttrim20
شنبه 27 خرداد 1391, 20:01 عصر
سلام کسی از دوستان میدونه این کد چه اشکالی داره؟

query = "SELECT id FROM movie WHERE id=@id";
com.CommandText = query;
com.Connection = conn;

com.Parameters.AddWithValue("@id",Convert.ToInt32(Label1.Text.ToString()));
int id1 = Convert.ToInt32(com.ExecuteScalar());

query = "INSERT INTO [nazar sanji] VALUES(@id,@rate,@id1)";

com.CommandText = query;
com.Connection = conn;

com.Parameters.AddWithValue("@rate", title);
com.Parameters.AddWithValue("@id", id);
com.Parameters.AddWithValue("@id1", id1);

زمان اجرا تو این خط:

com.Parameters.AddWithValue("@id",Convert.ToInt32(Label1.Text.ToString()));
این خطا رو میده:

Input string was not in a correct format.

kebriya
شنبه 27 خرداد 1391, 20:08 عصر
محتوای Label1.Text چیه؟ از Int32.Parse هم میتونی استفاده کنی

kebriya
شنبه 27 خرداد 1391, 20:12 عصر
http://www.codeproject.com/Articles/32885/Difference-Between-Int32-Parse-Convert-ToInt32-and

yuttrim20
شنبه 27 خرداد 1391, 20:22 عصر
ممنون از راهنمایی اما میخوام بدونم اشکال کارم کجاس که خطا میده!

Saeed_m_Farid
شنبه 27 خرداد 1391, 20:37 عصر
ممنون از راهنمایی اما میخوام بدونم اشکال کارم کجاس که خطا میده!
اشکال کارت اینه که متن درون Label1.Text یه عدد صحیح نیست (اینجا (http://msdn.microsoft.com/en-us/library/b3h1hf19.aspx) رو مطالعه کنید)، یعنی :


فقط از کاراکتر های عددی تشکیل نشده، مثل 122sd235a * یا اعشاری هست، مثل 1234.65 : خطای FormatException (http://msdn.microsoft.com/en-us/library/system.formatexception.aspx) میگیری
خالی هست، یعنی null : خطای ArgumentNullException (http://msdn.microsoft.com/en-us/library/system.argumentnullexception.aspx) میگیری
خیلی بزرگ یا کوچک هست، مثل 13244135465435485465 :خطای OverflowException (http://msdn.microsoft.com/en-us/library/system.overflowexception.aspx) میگیری

پس قبل از com.Parameters.AddWithValue بیزحمت یه try ... catch میذارین و در قسمت try همونطورکه دوستان گفتن Int32.Parse (http://msdn.microsoft.com/en-us/library/b3h1hf19.aspx)انجام میدین و اگه تو catch نیافتاد بقیه کارها رو ادامه میدین، امیدوارم دیگه ابهامی نمونده باشه ...

omidamiry
یک شنبه 28 خرداد 1391, 00:57 صبح
عدد در تغییر موجودیت که آیا رشته است یا اینت باید درست و بدون علائم غیر عددی باشه و خود انسان باید به صورت معمولی به صورت عدد بخونه همون کانورت جواب میده
فقط مشکل مقدار محتوای لیبل است

yuttrim20
یک شنبه 28 خرداد 1391, 10:19 صبح
مشکلم حل نشد این کد:

query = "SELECT id FROM movie WHERE id=@id1";
com.CommandText = query;
com.Connection = conn;
try
{
com.Parameters.AddWithValue("@id1", Convert.ToInt32(Label1.Text.ToString()));
}
catch
{
int id1 = Convert.ToInt32(com.ExecuteScalar());


query = "INSERT INTO [nazar sanji] VALUES(@id,@rate,@id1)";

com.CommandText = query;
com.Connection = conn;

com.Parameters.AddWithValue("@rate", title);
com.Parameters.AddWithValue("@id", id);
com.Parameters.AddWithValue("@id1", id1);

}
اما بازم error داره!

Must declare the scalar variable "@id1".