دسته بندی ها
21:02 1403/12/06

دلیل آپدیت شدن رکوردهایی از جدول که در شرط کویری نیست

مشخصات سوال کننده :
کاربر : ehsanphysic     امتیاز کاربر : ‎−1     رتبه کاربر : 7175
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 556
3 نظر
fateme : سوالتون کمی گنگ هست. ای کاش ساختار جدول customer و جدول ghest هم قرار می دادید تا از ارتباطات بین فیلدها مطلع باشیم.

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 11:17 1403/12/07
fateme : ضمنا شما فرمودید " برای مشتری با کد 00292 به تعداد 5 دفترچه دارم که کل رکورد ها 41 عدد می شود" این 41 چی هست و از کجا داره میاد ؟؟ برای درک اینکه چرا حلقه 3 بار تکرار میشه ولی 41 رکورد آپدیت میشن باید در مورد ساختار جداول شما هم اطلاعاتی داشته باشیم. چون شخصی که میخاد پاسخ بده هیچ اطلاعاتی در مورد پروژه شما و رکوردها و ساختارها نداره.

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 11:19 1403/12/07
ehsanphysic : جداول هیچ ارتباطی باهم ندارند و فقط و فقط در هردو کلید اصلی c_code می باشد من میخوام یکی از رکورد های شماره دفترچه 8277 را آپدیت کنم اما نرم افزار میره داخل جدول قسط تمامی دفترچه هایی که c_code=00292 هست را آپدیت میکند یعنی هرچی دفترچه قسط دارم را آپدیت میکنه که من نمیخوام این اتفاق بیافتد 3 رکورد تعداد اقساط دفترچه 8277 41 رکورد هم تعداد کل اقساط من از جمع اقساط 5 دفترچه قسطی که دارم

امتیاز کاربر : ‎−1   رتبه کاربر : 7175   تاریخ ثبت : 02:42 1403/12/07
ادامه نظرات ...
هوش مصنوعی

پاسخ هوش مصنوعی

به نظر می رسد مشکل شما ناشی از عدم ذخیره تغییرات در پایگاه داده بعد از بروزرسانی رکوردها باشد. در کد شما، فقط مقادیر تغییر کرده در حافظه (Memory) تغییر می کنند و این تغییرات باید به پایگاه داده ارسال شوند تا اعمال شوند. برای انجام این کار، باید از متد SaveChanges() استفاده کنید.

به عنوان مثال، کد شما باید به این شکل باشد:

var record_update = _context.GHEST.Where(r => r.Gh_ID == getghidfromdatabase1).ToList();
if (record_update.Any())
{
   foreach (var u in record_update)
   {
      u.Ghest_Comment1 = shenase;
   }
   _context.SaveChanges(); // این خط را اضافه کنید
}

با اضافه کردن _context.SaveChanges(); به کد، تغییرات اعمال شده در رکوردهای مشخص شده به پایگاه داده انتقال می یابند و تنها رکوردهایی که مطابق با شرط شما هستند، آپدیت خواهند شد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : hamid_b 21:58 1403/12/08

بهتر بود ساختار جداول هم قرار می دادید. اما شاید یکی از دلایل این باشه که در هر دو جدول نام کلید اصلی c_code هست. اما بیشتر از این چیزی به نظرم نمیرسه. یه کار دیگه هم میتونید انجام بدید. تو خود Sql Server هم وقتی آپدیت میزنید این مشکل پیش میاد ؟ یا فقط وقتی از طریق دستورات انتیتی اجرا می کنید این خطا رو دارید ؟

ویرایش شده در چهارشنبه 8 اسفند 1403 ساعت 21:58:51
به این پاسخ امتیاز بدهید    0
امتیاز: 518 رتبه: 4
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود