PDA

View Full Version : مشکل update در بانک access



alisorkheh
دوشنبه 03 آبان 1395, 10:36 صبح
با سلام خدمت دوستان عزیز
من یه برنامه دارم که دیتابیس اون اکسس هست
فرمی طراحی کردم برای ویرایش اطلاعات بانک
حالا هرکاری میکنم اطلاعات جدید جایگزین اطلاعات قبلی نمیشن
و اینم بگم با کدی که نوشتم هیچ مشکلی نداره و برنامه اجرا میشه ولی عمل نمیکنه
اینم کد:

oleDbCommand1.Parameters.Clear();
oleDbCommand1.CommandText = ("update table set name=@a, lname=@b, fthname=@c, ncode=@d where id=@j");
oleDbCommand1.Parameters.AddWithValue("@a", textBox1.Text);
oleDbCommand1.Parameters.AddWithValue("@b", textBox2.Text);
oleDbCommand1.Parameters.AddWithValue("@c", textBox3.Text);
oleDbCommand1.Parameters.AddWithValue("@d", textBox4.Text);
oleDbCommand1.Parameters.AddWithValue("@j", textBox10.Text);

oleDbConnection1.Open();
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
MessageBox.Show("!تغییرات به درستی ثبت گردید");



و اینم بگم که id که توی جدول مربوط به سطر هست، توی textbox10 میشینه
طبق اون where رو نوشتم

mrprestige
دوشنبه 03 آبان 1395, 18:19 عصر
سلام دوست من وقتت بخیر ، اول اینکه چرا textboxهای فیلد های ncode و id رو تبدیلشون نکردی به int ؟!

کد رو به این صورت بنویس

oleDbCommand1.Parameters.Clear();
oleDbCommand1.CommandText = ("update table set name=@a, lname=@b, fthname=@c, ncode=@d where id=@j");
oleDbCommand1.Parameters.AddWithValue("@a", textBox1.Text);
oleDbCommand1.Parameters.AddWithValue("@b", textBox2.Text);
oleDbCommand1.Parameters.AddWithValue("@c", textBox3.Text);
oleDbCommand1.Parameters.AddWithValue("@d", Convert.Toint32(textBox4.Text));
oleDbCommand1.Parameters.AddWithValue("@j", Convert.Toint32(textBox10.Text).Trim());

oleDbConnection1.Open();
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
MessageBox.Show("!تغییرات به درستی ثبت گردید");

alisorkheh
دوشنبه 03 آبان 1395, 19:14 عصر
ممنون از پاسخ شما
ولی متاسفانه این کار هم جواب نداد

Mahmoud Zaad
دوشنبه 03 آبان 1395, 19:47 عصر
سلام
برنامه پیغامی که توی مسیج باکس نوشتید رو نمایش میده یا نه؟

حسین.کاظمی
دوشنبه 03 آبان 1395, 20:16 عصر
سلام دوست عزیز
اینو تست کن ببین ایشالا مشکلت حل بشه



//oleDbCommand1.Parameters.Clear();
oleDbCommand1.CommandText = (@"UPDATE table SET name=@a,lname=@b,fthname=@c,ncode=@d where id=@j");
oleDbCommand1.Parameters.AddWithValue("@a",DbType.String).Value=textBox1.Text;
oleDbCommand1.Parameters.AddWithValue("@b",DbType.String).Value= textBox2.Text;
oleDbCommand1.Parameters.AddWithValue("@c",DbType.String).Value= textBox3.Text;
oleDbCommand1.Parameters.AddWithValue("@d",DbType.Int16).Value= Convert.ToInt16(textBox4.Text);
oleDbCommand1.Parameters.AddWithValue("@j",DbType.Int16).Value= Convert.ToInt16(textBox10.Text);

oleDbConnection1.Open();
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
MessageBox.Show("!تغییرات به درستی ثبت گردید");

alisorkheh
پنج شنبه 06 آبان 1395, 11:35 صبح
این کارو هم کردم دوست عزیز ولی بازم جواب نداد:گریه::گریه::گریه:
همه سیکل بدرستی اجرا میشه و پیغام رو هم میده که تغییرات ثبت شد ولی بازم عمل نمیکنه

Mahmoud Zaad
پنج شنبه 06 آبان 1395, 13:01 عصر
به نظر من، شما دو تا بانک اطلاعاتی دارید. یکیش توی پوشه ی برنامه کنار فایل فرم ها و کلاس هاست. دومی توی پوشه Debug یا Release. باید ببینید توی کانکشن استرینگ با کدوم فایل کار میشه.