دلیل آپدیت شدن رکوردهایی از جدول که در شرط کویری نیست
با سلام و احترام
یک جدول دارم به اسم ghest که کلید اصلی آن به اسم c_code می باشد که در واقع کد مشتری های ما می باشد. در جدول customer حال میخوام براساس فیلدی به اسم gh_id که کد دفترچه قسط می باشد فیلتر روی جدول قسط انجام داده و فیلدی به نام comment را آپدیت کنیم با دستورات زیر :
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;
}
}
مشکل را با یک مثال توضیح میدم : وقتی در دیباگ چک میکنم با کد دفترچه 8277 من دقیقا 3 عدد رکورد دارم که دقیقا حلقه من هم 3 بار تکرار می شود. اما در جدول ghest برای مشتری با کد 00292 به تعداد 5 دفترچه دارم که کل رکورد ها 41 عدد می شود حال دستور بالا با اینکه 3 عدد رکورد را نمایش میدهد و 3 بار هم حلقه تکرار می شود اما همه 41 رکورد را آپدیت میکند ک فکر میکنم خود نرم افزار میره تمام رکوردهایی که 00292 می باشد چون کلید اصلی می باشد در جدول خود مختار آپدیت را انجام می دهد که علتش را نمی دانم.
ممنون میشم برای رفع مشکل راهنمایی نمایید.
پاسخ هوش مصنوعی
به نظر می رسد مشکل شما ناشی از عدم ذخیره تغییرات در پایگاه داده بعد از بروزرسانی رکوردها باشد. در کد شما، فقط مقادیر تغییر کرده در حافظه (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(); به کد، تغییرات اعمال شده در رکوردهای مشخص شده به پایگاه داده انتقال می یابند و تنها رکوردهایی که مطابق با شرط شما هستند، آپدیت خواهند شد.
بهتر بود ساختار جداول هم قرار می دادید. اما شاید یکی از دلایل این باشه که در هر دو جدول نام کلید اصلی c_code هست. اما بیشتر از این چیزی به نظرم نمیرسه. یه کار دیگه هم میتونید انجام بدید. تو خود Sql Server هم وقتی آپدیت میزنید این مشکل پیش میاد ؟ یا فقط وقتی از طریق دستورات انتیتی اجرا می کنید این خطا رو دارید ؟
- ایجاد سطوح دسترسی به اجزای سایت
- خطا موقع استفاده از Api در سی شارپ
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2