PDA

View Full Version : سوال: حذف نشدن کامل از دیتابیس



usefzade
شنبه 08 شهریور 1393, 20:52 عصر
سلام.
چطوری و با چه کدی میتونم کاری کنم که وقتی کاربر روی دکمه "حذف" زد ، اون متن فقط برای کابر hide بشه ، یعنی برای اون نمایش داده نشه ، طوری ک کاربر فکر کنه این پیام رو حذف کرده اما داخل دیتابیس بمونه!!؟؟
این متد delete ای که من نوشتم ، با این متد میره از دیتابیس هم حذف میکنه:

public bool Delete(int id)
{
try
{
Message deleted_Messages = db.Messages.Where(p => p.Id == id).Single();
db.Messages.Remove(deleted_Messages);
return Convert.ToBoolean(db.SaveChanges());
}
catch (Exception)
{
return false;
}
}


حالا نمیدونم چجوری بگم ک فقط غیر قابل نمایشش کن؟؟

rezaei_y
شنبه 08 شهریور 1393, 21:26 عصر
یه فیلد تعریف کن مثلا IsActive و موقعی که کاربر خواست حذف کنه مقدارش رو False کن و رکوردهایی رو به کاربر نمایش بده که IsActive برابر True باشه

alireza_rashvand
شنبه 08 شهریور 1393, 21:35 عصر
این اموزش رو ببین (http://www.dotnettips.info/courses/topic/1/45c83554-d510-4e9e-a9a0-23db6138e33f)

helpsos
شنبه 08 شهریور 1393, 22:47 عصر
خیلی خب حالا باید از هر دو روش گفته شده در بالا استفاده کنی:
یعنی هم در بانک یه فیلد تعریف کنی که مقدار دهی شود و مثلا اگه true بود یعنی حذف شده(پس به جای دستور Delete باید دستور Update بنویسی)
و هم در صفحه برای اینکه نخواهی بری به بانک و دوباره اطلاعات را واکشی کنی فعلا فقط اون سطر را مخفی کنی.

ولی فکر کنم یه مبحثی به اسم SoftDelete باشه که حالا یا همون مورد اوله و یا چیزی که من دیگه دنبالش نرفتم ولی شما برو دنبالش و بیا همینجا برای ما هم بگو.

usefzade
شنبه 08 شهریور 1393, 22:48 عصر
ببخشید ، دقیقا متوجه نشدم این کدی ک گذاشتین داره چی میکنه قسمت Ajax اش؟؟؟
میشه توضیحش رو هم بدین؟

helpsos
شنبه 08 شهریور 1393, 23:06 عصر
میاد و اون سطر مورد نظر را با یه افکت محو می کنه. جالبه
برو به منبعی که معرفی شده تا ببینیش

helpsos
شنبه 08 شهریور 1393, 23:12 عصر
$(tableRow).fadeTo(600, 0, function () {
$(tableRow).remove();
});


البته حتما به منبع (http://www.dotnettips.info/courses/topic/1/45c83554-d510-4e9e-a9a0-23db6138e33f) برو