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

نام تاپیک: حذف ردیفهای یک دیتاتیبل از دیتاتیبل دیگر بوسیله یک ستون مشترک

  1. #1

    Question حذف ردیفهای یک دیتاتیبل از دیتاتیبل دیگر بوسیله یک ستون مشترک

    سلام دوستان و اساتید

    من توی برنامه سی شارپیم 2 تا دیتاتیبل دارم (تاکید می کنم دیتاتیبل ... در واقع یکی از پایگاه آفلاین فراخونده شده یکی از پایگاه آنلاین)

    دیتاتیبل اولم این شکلیه (برای مثال) :

    tbl1.JPG

    ستون اول یک سری کد منحضر به فرد هست که تکراری هم ندارد

    و دیتاتیبل دومم اینه :

    tbl2.JPG

    خب با توجه به عکس در واقع کدهای 11 و 33 و 77 در جدول اول و در جدول دوم مشابه هستند

    در واقع من میخوام نتیجه کار توی دیتاتیبل سوم ذخیره بشه به نحوی که از دیتاتیبل اول هر دو ستون رو فراخوانی کنم که تا اینجاش رو بلدم و نکته مهم تر اینکه بر اساس ستون اول من بیام
    اون مشترکات دیتاتیبل دوم رو از دیتاتیبل اول حذف کنم

    به عبارت ساده تر کل داده های ستون اول از دیتاتیبل اول در نتیجه لحاظ بشن به غیر مواردی که در دیتاتیبل دوم هستند
    نتیجه به صورت عکس :

    tbl3.JPG

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

  2. #2

    نقل قول: تفریق کردن یک دیتاتیبل از دیتاتیبل دیگر بوسیله یک ستون مشترک

    از اساتید و دوستان کسی نمیتونه این مورد رو کمک کنه
    ممنون از همگی

  3. #3
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: تفریق کردن یک دیتاتیبل از دیتاتیبل دیگر بوسیله یک ستون مشترک

    شما میتونید دیتاتیبل هاتون تبدیل به لیست کنید و از LINQ کمک بگیرید

    var dt1 = table1.AsEnumerable().ToList();
    var dt2 = table2.AsEnumerable().ToList();



    سپس با یک Select کدهاتون تبدیل به آرایه کنید و از توابع LINQ بهره بیرید جستجویی بزیند با این شزط که :کدهایی در جدول 1 که در جدول 2 وجود ندارند

    var getId = dt2.Select(s => s["KOD"]).ToArray();
    var dt3 = dt1.Where(x => !getId.Contains(x["KOD"])).ToList();



    یا بدینصورت هم میتونید

    var table3 = table1.Copy();
    table3.AcceptChanges();
    table3.Merge(table2);
    var dt5 = from row in table3.AsEnumerable()
    where row.RowState != DataRowState.Modified
    select row;


    میتونید از تابع تفاضل هم استفاده کنید

    var dt = table1.AsEnumerable().Except(table2.AsEnumerable() , DataRowComparer.Default).ToList();

    آخرین ویرایش به وسیله ali_md110 : جمعه 05 مرداد 1397 در 13:54 عصر

  4. #4
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    ایران
    پست
    372

    نقل قول: تفریق کردن یک دیتاتیبل از دیتاتیبل دیگر بوسیله یک ستون مشترک

    از این کد هم می توانی استفاده کنی


    DataTable table3 = new DataTable();
    var ERC1 = table1.AsEnumerable().Select(a => new { kod = a["kod"].ToString() });
    var ERC2 = table2.AsEnumerable().Select(b => new { kod = b["kod"].ToString() });
    var exceptAB = ERC1.Except(ERC2);
    table3 = (from dRow in table1.AsEnumerable()
    join ab in exceptAB on dRow["kod"].ToString() equals ab.kod
    select dRow).CopyToDataTable();

    DT3.PNG

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

  1. حذف مقدار یک ستون
    نوشته شده توسط cnmeysam در بخش مدیریت دیتابیس (Database Administration)
    پاسخ: 1
    آخرین پست: جمعه 13 شهریور 1394, 18:36 عصر
  2. حذف اطلاعات يك ستون از جدول اكسس
    نوشته شده توسط amir zahed در بخش Access
    پاسخ: 2
    آخرین پست: یک شنبه 30 شهریور 1393, 07:17 صبح
  3. انتقال یک ستون از دیتاتیبل به دیتاتیبل دیگر
    نوشته شده توسط na3er-faraji در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: دوشنبه 01 آذر 1389, 14:49 عصر
  4. سوال: حذف یک رکورد از dataGridView از فرمی دیگر
    نوشته شده توسط mahdi_7610 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: پنج شنبه 10 اردیبهشت 1388, 23:10 عصر
  5. پاسخ: 2
    آخرین پست: شنبه 21 اردیبهشت 1387, 22:05 عصر

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

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