PDA

View Full Version : مبتدی: مشکل در ذخیره اطلاعات در دیتابیس



shahzadeh_jadid
دوشنبه 20 اسفند 1397, 05:53 صبح
سلام
من با استفاده از Linq و دستورات Insert,Update,Delete در برنامه مقادیر موجود در دیتابیس رو تغییر میدم ، در ظاهر برنامه همه چی مرتبه بدون هیچ خطایی برنامه اجرا میشه و مشکلی نیست(مثلا یک رکورد را حذف میکنم دیگه اونو بهم نشون نمیده) ولی زمانی که برنامه رو میبندم و مجدد باز می کنم تغییرات به حالت اولیه برگشته اند و انگار کاری روی Database انجام نشده.
مقادیر موجود در دیتابیس رو به صورت دستی هم چک کردم ولی هیچ تغییری روی آن اعمال نشده
نمیدونم ربطی داره یا نه ولی دیتابیس من بصورت Express هستش

نمونه کد حذف رکورد:




private void btn_delete_Click(object sender, EventArgs e)
{
int rowcurrent;
rowcurrent = Convert.ToInt32(GView.CurrentRow.Cells["inv_id"].Value);
var db = new LinqDataContext();
using (LinqDataContext DC = new LinqDataContext())
{
inventori inv = DC.inventoris.Single(s => s.inv_id == rowcurrent);
DC.inventoris.DeleteOnSubmit(inv);
DC.SubmitChanges();
};

}

shahzadeh_jadid
سه شنبه 21 اسفند 1397, 22:56 عصر
کسی نیست راهنماییم کنه؟

davidrobert
چهارشنبه 22 اسفند 1397, 10:51 صبح
کسی نیست راهنماییم کنه؟

بابت حذف میخواهید انجام بدید از گرید ویو به جای یک متغییر داخل از یک Label استفاده کنید اول اون Label به حالت نمایش باشه و وقتی اون ستون از دیتاگرید ویو انتخاب میکنید مشاهده کنید ببنید ستون مورد نظر مقدار ID قرار میده داخل Label و وقتی مقدار مورد نظر رو از دیتاگرید ویو به Label ریختید. اون موقع شما تو حذف به جای این که متغییر بگیرید مقدار شناسه ستونی که باید حذف بشه از Label میگیرید و اون ستون مورد نظر حذف میشه و بعد از حذف هم دستور نمایش صدا بزنید که وقتی از دیتابیس حذف بشه معلوم میشه همون لحظه ستون از دیتاگریدویو میره. یعنی اول حذف و بعد دوباره نمایش بدید اطلاعات.
این طوروی معلوم میشه ستون وقتی حذف میزدید نمیگیرفت ولیچون الان شناسه اش رو از دیتابیس داره حذف شده وقتی دیدید مشکل شناسه دریافتی حل شد اون Label مخفی کنید. خود من برای اینکه خیال ام راحت باشه ستون مورد نظر به درستی حذف میشه همین کار رو انجام دادم.

Mahmoud.Afrad
چهارشنبه 22 اسفند 1397, 12:33 عصر
http://barnamenevis.org/showthread.php?408935-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%86%D8%B4%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-linq&p=1825546&viewfull=1#post1825546

shahzadeh_jadid
جمعه 24 اسفند 1397, 07:01 صبح
http://barnamenevis.org/showthread.php?408935-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%86%D8%B4%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-linq&p=1825546&viewfull=1#post1825546

ممنون دیتابیس رو باید رو حالت Copy if newer تنظیم میکردم که حل شد