PDA

View Full Version : سوال: مشکل کد آپدیت من کجاست



mortezasar
سه شنبه 14 آذر 1391, 20:39 عصر
سلام خدمت همه دوستان
من روی دکمه ویرایش کلیک میکنم اما ویرایش انجام نمیشه برنامه رو تریس کردم دقیقا متغیر هام و تکست باکس هام مقدار جدید میگیرن اما در جدول آپدیت نمیشن و در گرید ویو مقدار قبلی نشون داده میشه


SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=SHNASNAME_FARHANGI_TEST;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Update Table_Home set hom_datetasis=@hom_datetasis,hom_ehda=@hom_ehda,ho m_sazand=@hom_sazand,hom_vazbana=@hom_vazbana,hom_ mizban=@hom_mizban,hom_mizbanname=@hom_mizbanname, hom_keyname=@hom_keyname,hom_keytel=@hom_keytel,ho m_vazsokonat=@hom_vazsokonat,hom_saken=@hom_saken, hom_saken2=@hom_saken2,hom_sakenname=@hom_sakennam e,hom_sakentel=@hom_sakentel,hom_taminprice=@hom_t aminprice,hom_comm=@hom_comm where id='" + gvhomedit.CurrentRow.Cells[3].Value.ToString() + "' ", con);
cmd.Parameters.AddWithValue("@hom_datetasis", Int32.Parse(txtkhdateehdas.Text));
cmd.Parameters.AddWithValue("@hom_ehda", txtkhehda.Text);
cmd.Parameters.AddWithValue("@hom_sazand", txtkhsazand.Text);
cmd.Parameters.AddWithValue("@hom_vazbana", vazbana);
cmd.Parameters.AddWithValue("@hom_mizban", mizban);
cmd.Parameters.AddWithValue("@hom_mizbanname", txtkhmiz.Text);
cmd.Parameters.AddWithValue("@hom_keyname", txtkeyname.Text);
cmd.Parameters.AddWithValue("@hom_keytel", Int64.Parse(txtkeytel.Text));
cmd.Parameters.AddWithValue("@hom_vazsokonat", vazbana1);
cmd.Parameters.AddWithValue("@hom_saken", fal);
cmd.Parameters.AddWithValue("@hom_saken2", comfal);
cmd.Parameters.AddWithValue("@hom_sakenname", txtejname.Text);
cmd.Parameters.AddWithValue("@hom_sakentel", Int64.Parse(txtejtel.Text));
cmd.Parameters.AddWithValue("@hom_taminprice", txtkhtamin.Text);
cmd.Parameters.AddWithValue("@hom_comm", txtkhcomm.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقیت ویرایش شد");
tabPage5_Enter(null, null);
p6.Visible = false;

saber_ershadi
سه شنبه 14 آذر 1391, 20:52 عصر
سلام
دوست عزیز اگه برنامه رو بزاری بچه ها بهتر میتونن نظرشونو بدن
در ضمن شاید مشکل از جای دیگه باشه
شاید نوشتن املایی همین کد های بالا درست نباشه
شاید عمل آپدیت انجام میشه ولی چون دیتا گرید ویو رو refresh نمیکنی اطلاعات تغییر کرده رو نشون نمیده

mortezasar
سه شنبه 14 آذر 1391, 20:55 عصر
چرا گرید رفرش میشه اما اطلاعات تغییر نکرده که گرید بخواد تغییرات رو نشون نده برنامه ارور هم نداره دقیقا خط به خط تریس میکنم کلیه متغیر هام و تکست باکس ها مقدار جدید دارن اما نمیدونم چرا آپدیت نمی شن

saber_ershadi
سه شنبه 14 آذر 1391, 21:00 عصر
اگه از این چند موردی که گفتم همه رو 100% مطمئنی درس هستن دیگه باید ببینی جای دیگه برنامت مشکل داره یا نه

Y_Safaiee
سه شنبه 14 آذر 1391, 21:01 عصر
سلام دوست من

ID که در آخر شرط گذاشتی عددی هست یا رشته ای؟اگه عددی هست باید به صورت عددی به دیتابیس پاس بدیش,تست کن خبرشو بده

موفق باشی
بایت بایت

mortezasar
سه شنبه 14 آذر 1391, 21:03 عصر
عددی هست دوس عزیز فکر نمیکنم از اون باشه اخه دقیقا همین کد رو یک جای دیگه به همین صورت استفاده کردم و آپدیت هم درست انجام میشه

mortezasar
سه شنبه 14 آذر 1391, 21:04 عصر
دوست عزیز اینجوری بنویسم


Int32.Parse(gvhomedit.CurrentRow.Cells[3].Value.ToString())

Y_Safaiee
سه شنبه 14 آذر 1391, 21:08 عصر
با سلام مجدد

اگه bigint هست که باید long.pars بنویسی اگه int هست آره میشه int.pars

mortezasar
سه شنبه 14 آذر 1391, 21:11 عصر
نشد دوست عزیز این کارم انجام دادم اما بازم اطلاعات اطلاعات قبلی هست

mreza80
چهارشنبه 15 آذر 1391, 15:28 عصر
دوست عزیز اگر مشکل املایی نداره و دستورات اجرا میشه و اگر رفرش میکنی و یا در جدول کنترل میکنی و تعریف نوع و اندازه پارمترهات با sql یکی است پس برنامه رو بزار مشکل پیدا کنیم

n_amiry70@yahoo.com
شنبه 14 بهمن 1391, 21:42 عصر
سلام من تو دیتا بیس با کدنویسی فیلدارو آپدیت میکنم ولی همون کد در سی شارپ جواب نمیده
string


cs2 = "update pr set madrak ='1' where age =" + textBox1.Text + " ";

asghar2008
شنبه 14 بهمن 1391, 22:47 عصر
سلام
کد شما ایراد نداره !
فقط شما تو این خط چندتا اشتباه تایپی کردین(بین حروف بعضی از کلمات فاصله گذاشتین مثل این ,ho m_sazand=@hom_sazand,):

SqlCommand cmd = new SqlCommand("Update Table_Home set hom_datetasis=@hom_datetasis,hom_ehda=@hom_ehda,ho m_sazand=@hom_sazand,hom_vazbana=@hom_vazbana,hom_ mizban=@hom_mizban,hom_mizbanname=@hom_mizbanname, hom_keyname=@hom_keyname,hom_keytel=@hom_keytel,ho m_vazsokonat=@hom_vazsokonat,hom_saken=@hom_saken, hom_saken2=@hom_saken2,hom_sakenname=@hom_sakennam e,hom_sakentel=@hom_sakentel,hom_taminprice=@hom_t aminprice,hom_comm=@hom_comm where id='" + gvhomedit.CurrentRow.Cells[3].Value.ToString() + "' ", con);

ordebehesht
شنبه 14 بهمن 1391, 23:48 عصر
دوست من ببین تو بانکت ودرایش اعمال میشه یا نه اونجا مهمه نه گرید ودو اونجا رو داشته باش اگه بشه کدت درسته و رفرش گرید ایراد داره

ordebehesht
شنبه 14 بهمن 1391, 23:54 عصر
دوست من این کار رو بکن ببین مجوابت چیه


int i=cmd.ExecuteNonQuery();
if(i==1)
messagebox.show("yes" , "result");
else

messagebox.show("no" , "result");


اگه yes داد بله اعمال میکنه در غیر اینصورت نه

هر دو کاری که گفتم بکن اول تایپیک قبلی رو انجام بده