نمایش نتایج 1 تا 10 از 10

نام تاپیک: ارسال رکورد انتخاب شده در DataGridView به دستور Delete در Sql

  1. #1
    کاربر دائمی آواتار first_squit
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    154

    Tick ارسال رکورد انتخاب شده در DataGridView به دستور Delete در Sql

    با سلام

    با استفاده از چه کدی می شه اطلاعات موجود در رکورد انتخاب شده در DataGridView رو به دستور Delete ارسال کرد

    یا به عبارت دیگر می خوام کاربر یک رکورد رو در dataGridView انتخاب کنه و بعد با استفاده از یک Button اونو حذف کنه

    متشکرم

  2. #2
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    برای اینکار، مثلا:

    dt.Rows[cm.Position].Delete();

    که cm شیئی از نوع CurrencyManager هست که مربوط به منبع داده DataTable خواهد بود. برای گرفتن این شیئ:

    CurrencyManager cm = this.BindingContext[dt];

    dt همان منبع داده از نوع DataTable است (که توسط متد Fill انرا پر کردید).

  3. #3
    کاربر دائمی آواتار first_squit
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    154
    می شه بیشتر توضیح بدید زمانی که
    CurrencyManager cm = this.BindingContext[dt];

    می نویسم از BIndingContext ایراد می گیره

  4. #4
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    چه ایرادی میگیره؟

  5. #5
    کاربر دائمی آواتار first_squit
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    154
    نقل قول نوشته شده توسط PC2st.ir مشاهده تاپیک
    چه ایرادی میگیره؟
    می گه که نمی تونه BIndingContext رو در CurrencyManager ... اعمال یا convert کنه

    ایراد کار من از کجاست آیا باید چیزی رو به Using هام اضافه کنم

  6. #6
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    شدیدا عذر میخوام :-(
    تبدیل نوع رو یادم رفت، اینطور تبدیلش کنید:

    CurrencyManager cm = (CurrencyManager) this.BindingContext[dt];

  7. #7
    کاربر دائمی آواتار first_squit
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    154
    نقل قول نوشته شده توسط PC2st.ir مشاهده تاپیک
    شدیدا عذر میخوام :-(
    تبدیل نوع رو یادم رفت، اینطور تبدیلش کنید:

    CurrencyManager cm = (CurrencyManager) this.BindingContext[dt];
    ببخشید این تغیرات تنها بر روی dataGridView انجام می شه ؟
    و من باید این تغییر رو چطوری به منبع داده انتقال بدم ؟

    باید datatable رو Update کنم

  8. #8
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    این تغییرات روی منبع داده dt اعمال میشه، در واقع رکورد انتخاب شده در دیتاگرید (اندیس cm.Position) از منبع داده dt حذف میشه.

  9. #9
    کاربر دائمی آواتار first_squit
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    154
    یک نکته دیگه که بنده در مورد اون هیچ اطلاعاتی ندارم رکوردی که در datagridView وجود داره به چند table دیگه اتصال داره و زمانی که می خوام تغییرات مثل همین حذف انجام بدم اجازه این کار نمی ده

    دیتابیس من Access و من رلیشن هاش رو هم رسم کردم

    مشکل از کجاست

  10. #10
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    جدول A دارای فیلدهای a0 و a1 هست و جدول B دارای فیلدهای b0 و b1 است.
    که فیلد a0 رابطه یک به چند با فیلد b0 داره.

    محتویات جدول A:

    a0 a1
    ----------------
    1 A
    2 B
    3 C


    محتویات جدول B:

    b0 b1
    ----------------
    1 A12
    1 A15
    1 A20
    3 C12
    3 C30


    همانطور که از محتویات جدول B میبینید، رکوردهای این جدول در فیلد b0 دارای عدد 2 نیستند، به عبارتی پس از گرفتن کوئری (کوئری گرفتن بر اساس رابطه ای که دارند) و دیدن نتایج، خواهیم دید که رکورد دوم از جدول A هیچ تاثیر در نتایج کوئری ندارد. پس رکورد دوم از جدول A رو میشه به راحتی حذف کرد چون هیچکدام از رکوردهای جدول B از اون استفاده نمیکنند، اما رکورد اول از جدول A رو نمیشه حذف کرد چون بسیاری از رکوردهای جدول B (رکوردهای اول تا سوم) به اون احتیاج دارند پس نمیشه رکورد اول از جدول A رو حذف کرد.

    برای حذف اولین رکورد از جدول A، دو راه پیش رو دارید:

    + در زمانی که بین جداول رابطه ایجاد میکنید، میتونید یک option رو مورد استفاده قرار بدید و کاری کنید که با پاک کردن رکوردی مثل رکورد اول از جدول A (که نمیشه حذفش کرد) کاری کنید که بتونید حذفش کنید البته بطوریکه تمام رکوردهای جدول B که به طریقی به اون احتیاج دارند هم حذف شوند (دقیقا یادم نیست که این گزینه چه بود Cascade Delete شاید اسمش این بود).

    + یک راه دیگر برای حذف رکورد اول جدول A، اینکه که تمام رکوردهای مرتبط به اون رو از جدول B حذف کنید، بعدش مجاز هستید که رکورد مورد نظر رو از جدول A حذف کنید.

تاپیک های مشابه

  1. delete
    نوشته شده توسط LEILAFATHI در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: یک شنبه 07 بهمن 1386, 11:46 صبح
  2. Delete شدن اطلاعات ( فوری )
    نوشته شده توسط elham20 در بخش امنیت در شبکه
    پاسخ: 2
    آخرین پست: شنبه 27 اسفند 1384, 00:16 صبح
  3. تشخیص فشرده شدن کلیدهای delete و در این رده
    نوشته شده توسط آیدا رضایی در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 05 اسفند 1384, 07:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •