سلام
متاسفانه کدهای شما صحیح نمیباشد.
سه مسئله اینجا وجود دارد که باید جداگانه متوجه شوید و کدصحیحش را بنویسید.
1) درج دیتای جدید به DataTable به صورت مستقیم یا غیر مستقیم تا به گراید هم اضافه شود.
2) حرکت سطرجاری گراید به رکورد تازه درج شده.
3) ذخیره دیتاها در دیتابیس اصلی و به صورت پایدار و نهایی.
-----
اول مورد 3 را توضیح میدهم...آیا روشی که من برای Update استفاده کردم درست است؟
آیا برای درج رکورد جدید نیازی به دستورات زیر وجود دارد؟
الف)
معمولاً در دات نت و با گراید رفتار عادی چنین است که دیتا را فقط به DataTable اضافه میکنیم و کاربر مثلاً 10 یا 20 سطر جدید اضافه میکند و تا این زمان تغییرات به دیتابیس اصلی اعمال نشده است...
بعد کاربر دکمه Save را در برنامه کلیک میکند و تازه در این زمان کل تغییرات به صورت یکجا ذخیره میشود...
یک چیزی شبیه برنامه های عادی غیر بانک اطلاعاتی (!) که تا وقتی فرمان Save را خودتان ندهید تغییرات ذخیره نمیشوند و یا موقع خروج از برنامه در خصوص ذخیره سازی تغییرات سوال میشود...
امیدوارم متوجه شده باشید چه میگویم؟
اگر این روند ذکر شده را بخواهید انجام دهید باید از DataAdapter و فرمان Update استفاده کنید تا کلیه تغییرات DataTable شما یکجا در دیتابیس اصلی اعمال شود (شامل درج و ویرایش و حذف) اگر این روش را خواستید توضیح بیشتر میدهم.
ب)
اگر این روند را نمیخواهید و میخواهید به دکمه Save در برنامه نداشته باشید یا حداقل درج هموراه به طور خودکار Save و اعمال شود و فوراً در لحظه به بانک اضافه شود، باید از شی Command استفاده کنید که اگر این روش را خواستید توضیح میدهم.
-----
1) و 2)
در کد قبلی شما، شما همینطوری یک DataView ساخته اید و اضافه کرده اید، این هیچ فایده ای ندارد.
بهترین راه آن است که یک DataView روی فرم قرار دهید، یعنی به نمایه Design بروید و DataView را از Toolbox خود VS روی فرم رها کنید.
سپس ...
سپس از کدی شبیه این استفاده کنید:نوشته شده توسط _H2_
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید