PDA

View Full Version : سوال: ارور موقع آپدیت جدول در sql



reza69
چهارشنبه 25 بهمن 1391, 22:48 عصر
سلام
من موقع آپدیت کردن جدول این ارور رو میبینم.

input string was not in a correct format.

اینم کدمه:

SqlCommand cmd;
con.Open();
try
{
cmd = con.CreateCommand();
cmd.CommandText = "update tkala set namekala=@a,noekala=@b,noebaste=@c,codeanbar=@d,te dad=@e,tdarbastebandi=@f,ghvahed=@g,takhfif=@h,ghk ol=@i where codekala=" + lblcodekala4.Text;
cmd.Parameters.AddWithValue("@a", txtnamekala4.Text);
cmd.Parameters.AddWithValue("@b", txtnoekala4.Text);
cmd.Parameters.AddWithValue("@c", txtnoebaste4.Text);
cmd.Parameters.AddWithValue("@d", Convert.ToInt64(txtcodeanbar4.Text));
cmd.Parameters.AddWithValue("@e", Convert.ToInt64(txttedad4.Text));
cmd.Parameters.AddWithValue("@f", txttdarbaste4.Text);
cmd.Parameters.AddWithValue("@g", txtghvahed4.Text);
cmd.Parameters.AddWithValue("@h", txttakhfif4.Text);
if (txttakhfif4.Text == "")
{
//int a;
//a = );

cmd.Parameters.AddWithValue("@i", Convert.ToInt64(txttedad.Text) * Convert.ToInt64(txtghvahed.Text));
}
else
{
cmd.Parameters.AddWithValue("@i", Convert.ToInt64(txttedad.Text) * Convert.ToInt64(txtghvahed.Text) - Convert.ToInt64(txttakhfif.Text));
}
cmd.ExecuteNonQuery();
MessageBox.Show(".اطلاعات با موفقیت ویرایش شد");

خط 20 ارور میده.

saeedgholami
چهارشنبه 25 بهمن 1391, 22:52 عصر
سلام
شما اول این محاسبه رو تو خط قبل انجام بده بعد حاصل اون رو tostring کن ارسال کن

reza69
چهارشنبه 25 بهمن 1391, 23:10 عصر
سلام
شما اول این محاسبه رو تو خط قبل انجام بده بعد حاصل اون رو tostring کن ارسال کن
نمیشه باز همون ارور رو میده. از خط وسط ارور میگیره.

long a;
a = Convert.ToInt64(txttedad.Text) * Convert.ToInt64(txtghvahed.Text);
cmd.Parameters.AddWithValue("@i",a.ToString () );

saeedgholami
چهارشنبه 25 بهمن 1391, 23:48 عصر
این خط رو بررسی کن ببین

ghk ol=@i


ببین دلیل این فاصله چیه شاید مشکل از اون باشه
ببخشید مشکل از این نمیتونه باشه چون تعدادم فاصله بینشه

sasan_22
پنج شنبه 26 بهمن 1391, 01:58 صبح
یعنی عددت خیلی بزرگه که به INT64 تبدیل می کنی ؟؟
فکر کنم مشکل از همون باشه به INT32 تبدیل کن تا متغییر از نوع long سرریز نشه

reza69
پنج شنبه 26 بهمن 1391, 18:16 عصر
یعنی عددت خیلی بزرگه که به INT64 تبدیل می کنی ؟؟
فکر کنم مشکل از همون باشه به INT32 تبدیل کن تا متغییر از نوع long سرریز نشه
شما به هر اینتی که بگید تبدیل کردم نشده مشکل اینکه میگه مقدار رشته ای ورودی فرمتش غیر قابل قبول هست.
نمیدونم چرا
اون خط های فاصله هم تو این سایت موقع کپی کردن بوجود میاد و تو برنامه خودم چنین چیزی نیست.

reza69
پنج شنبه 26 بهمن 1391, 20:29 عصر
جوابو پیدا کردم خودم اشتباه میکردم ممنون از همه دوستان
باید به جای txtghvahed.Text
این رو مینوشتم
txtghvahed4.Text

saeedgholami
پنج شنبه 26 بهمن 1391, 23:06 عصر
سلام
خداروشکر که مشکلتون حل شد
موفق باشی