PDA

View Full Version : ویرایش اطلاعات فرم ها (ثبت رکوردهای جدید در dataGridView)



sajad_3dmax
چهارشنبه 06 خرداد 1394, 17:01 عصر
با عرض سلام خدمت دوستان گرامی.
عذرخواهی میکنم، من فرمی رو دارم که تو اون رکوردهایی رو تو یک دیتا گرید ویو ثبت میکنم (مشخصات چند فرد جهت استعلام)که همه این رکوردها تحت یک شماره هستند. (شماره نامه).حالا یه فرم دیگه هم دارم (مثلا فرم 2)که نامه های از قبل ثبت شده رو لیست میکنه . اگه بخوام یک نامه رو ویرایش کنم(مثلا رکوردهایی به اون ها اضافه کنم )روی دکمه ویرایش مربوط به اون نامه در فرم2 کلیک میکنم و اطلاعات موجود نمایش پیدا میکنه در یک دیتا گرید.
حالا بنده میام مثلا 5 تا رکورد دارم، 2 هم به اون ها اضافه میکنم میشه 7 تا که در دیتاگرید ویو نمایش داده میشند. وقتی بخوام ثبت تغییرات کنم فقط باید 2 رکورد جدید در بانک ثبت بشه.(در واقع به رکوردهای قبلی اضافه بشه).چطور میتونم اینکار رو انجام بدم؟
من خودم اومدم رکورهای اولیه رو که قبلاً ثبت کرده بودم بصورت backColor سبز کردم. جدیدا هم که سفیدند. میتونم از طریق مقایسه backColor بفهمم که رکورد جدیده یا از قبل ثبت شده؟ من اینکار رو کردم اما جواب نداده.
مثلا
for(i,j) //برای مرور رکوردهای دیتا گرید
if (datagridview1["column","row"].style.backColor==color.green)
continue;
درغیر اینصورت ثبت در بانک

god of war
چهارشنبه 06 خرداد 1394, 17:08 عصر
سلام مهندس
میتونی موقعی که اطلاعات اولیه بانکت ریخته میشه تو گرید تعداد سطرهارو بشماری بعد موقع ثبت از ائن سطر به بعد بری جلو ....

god of war
چهارشنبه 06 خرداد 1394, 17:10 عصر
با این کد تعداد سطرهارو میتونی بشماری

int i= dataGridView1.Rows.Count;

alibilgats
چهارشنبه 06 خرداد 1394, 20:06 عصر
سلام دوست عزیز.

اگه شما اطلاعات رو با dataset به datagrid بصورت bindingsource انتقال بدی، که در اینصورت خود دیتاست بحث رکورد جدید و ویرایش رو تشخیص میده و توی جدول اعمال میکنه!
ولی اگه اون رکوردها رو بصورت دستی تک تک میخوانی خودت خیلی راحت میتونی یه ستون وضعیت توی datagrid بذاری و رکوردهای قبلی رو وضعیتش رو موقع خوندن مثلا 1 بذاری و موقه اضافه کردن رکوردهای جدید بیت وضعیتشون رو 0 قرار بدی! موقه ثبت هم بیا اون رکوردهایی که بیت وضعیتشون 0 هستش رو insert کن! به همین راحتی!:چشمک:

sajad_3dmax
پنج شنبه 07 خرداد 1394, 07:54 صبح
سلام مهندس
میتونی موقعی که اطلاعات اولیه بانکت ریخته میشه تو گرید تعداد سطرهارو بشماری بعد موقع ثبت از ائن سطر به بعد بری جلو ....
سلام مهندس. ممنون از بابت اینکه محبت فرمودین پاسخ ارسال کردین.
اما یه نکته ای که این وسط وجود داره اینه که ممکنه یکی دو تا از رکوردهای قبلیمو پاک کنم.چون فرم ویرایشه دیگه. حذف و اضافه داره.حتی قبلی ها رو هم باید بتونه حذف کنه

sajad_3dmax
پنج شنبه 07 خرداد 1394, 07:56 صبح
تشکر دوست عزیز. ولی میخواستم تو پشت زمینه اتفاق بیفته این کنترل کردنه. این چیزی که شما میفرمایید برای کاربر بی معنی ست. ولی باز هم خیلی خیلی ممنون

khokhan
پنج شنبه 07 خرداد 1394, 09:44 صبح
با عرض سلام خدمت دوستان گرامی.
عذرخواهی میکنم، من فرمی رو دارم که تو اون رکوردهایی رو تو یک دیتا گرید ویو ثبت میکنم (مشخصات چند فرد جهت استعلام)که همه این رکوردها تحت یک شماره هستند. (شماره نامه).حالا یه فرم دیگه هم دارم (مثلا فرم 2)که نامه های از قبل ثبت شده رو لیست میکنه . اگه بخوام یک نامه رو ویرایش کنم(مثلا رکوردهایی به اون ها اضافه کنم )روی دکمه ویرایش مربوط به اون نامه در فرم2 کلیک میکنم و اطلاعات موجود نمایش پیدا میکنه در یک دیتا گرید.
حالا بنده میام مثلا 5 تا رکورد دارم، 2 هم به اون ها اضافه میکنم میشه 7 تا که در دیتاگرید ویو نمایش داده میشند. وقتی بخوام ثبت تغییرات کنم فقط باید 2 رکورد جدید در بانک ثبت بشه.(در واقع به رکوردهای قبلی اضافه بشه).چطور میتونم اینکار رو انجام بدم؟
من خودم اومدم رکورهای اولیه رو که قبلاً ثبت کرده بودم بصورت backColor سبز کردم. جدیدا هم که سفیدند. میتونم از طریق مقایسه backColor بفهمم که رکورد جدیده یا از قبل ثبت شده؟ من اینکار رو کردم اما جواب نداده.
مثلا
for(i,j) //برای مرور رکوردهای دیتا گرید
if (datagridview1["column","row"].style.backColor==color.green)
continue;
درغیر اینصورت ثبت در بانک

می تونی در فرم ویرایش از دیتاتیبل استفاده کنی بعد یه دکمه ثبت بگذاری و با فشردن اون فقط یکبار جدولتون از طریق اون دیتاتیبل آپدیت بشه
دیگه نه نیازی نیست برای هرکدوم از اعمال ویرایش و حذف دکمه جدا گانه بگذاری ...... همه تغییرات رو یکجا توی گرید انجام می دین و یکبار دکمه ثبت رو می زنین والسلام

shadihemesi
پنج شنبه 07 خرداد 1394, 10:41 صبح
وقتی رو یک رکورد در دیتا گرید ویو دابل کلیک میکنیم به دیتا گرید ویو دومی در همان فرم وارد شود تا بعد بتوان از دیتا گرید ویو دوم در دیتا بیس ثبت شود. لطفا کمک کنید:اشتباه::اشتباه::اشتباه: :اشتباه::اشتباه::اشتباه::اشت اه:

khokhan
پنج شنبه 07 خرداد 1394, 16:59 عصر
وقتی رو یک رکورد در دیتا گرید ویو دابل کلیک میکنیم به دیتا گرید ویو دومی در همان فرم وارد شود تا بعد بتوان از دیتا گرید ویو دوم در دیتا بیس ثبت شود. لطفا کمک کنید:اشتباه::اشتباه::اشتباه: :اشتباه::اشتباه::اشتباه::اشت اه:

اگه بخوای با دیتاتیبل عمل حذف و ویرایش و اضافه رو یکجا انجام بدی ..... تقریبا یه چیزی مثل این نمونه بایستی بسازی :لبخند:
.........