.net의 다른 데이터 테이블을 기반으로 하나의 데이터 테이블 행을 제거하는 방법은 무엇입니까?

베드로

dtFirst아래와 같이 이름이 지정된 데이터 테이블이 하나 있습니다.

Fieldname              Newvalue

antenastructure        12
slno                   2
servicelevel
powersupply

다른 데이터 테이블 dtMaster

Mastertabe          Masterfield          infoid      zvalue     qvalue

M_seq               antenastructure       123          
M_seq               slno                  1      
M_seq               servicelevel          133
M_seq               powersupply           154
M_seq               azimheight            124

내가 원하는 것은 내가 행을 제거 할 것입니다 dtMaster경우 FieldnamedtFirst가 포함되어 있지 않습니다 Newvalue여기 즉 내가 포함 된 행을 제거 할 servicelevelpowersupply.These 두 그중 내가 작은 부분을 게시하고 밖으로 빅 데이터 테이블입니다

jdweng

이것이 작동하는지 확인하십시오.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dtFirst = new DataTable();
            dtFirst.Columns.Add("Fieldname", typeof(string));
            dtFirst.Columns.Add("Newvalue", typeof(int));
            dtFirst.Columns["Newvalue"].AllowDBNull = true;

            dtFirst.Rows.Add(new object[] {"antenastructure", 12});
            dtFirst.Rows.Add(new object[] {"slno", 2});
            dtFirst.Rows.Add(new object[] {"servicelevel"});
            dtFirst.Rows.Add(new object[] {"powersupply"});

            string[] dtFirstValidRows = dtFirst.AsEnumerable().Where(x => x.Field<int?>("Newvalue") != null).Select(x => x.Field<string>("Fieldname")).ToArray();

            DataTable dtMaster = new DataTable();
            dtMaster.Columns.Add("Mastertabe", typeof(string));
            dtMaster.Columns.Add("Masterfield", typeof(string));
            dtMaster.Columns.Add("infoid", typeof(int));
            dtMaster.Columns["infoid"].AllowDBNull = true;
            dtMaster.Columns.Add("zvalue", typeof(int));
            dtMaster.Columns["zvalue"].AllowDBNull = true;
            dtMaster.Columns.Add("qvalue", typeof(int));
            dtMaster.Columns["qvalue"].AllowDBNull = true;

            dtMaster.Rows.Add(new object[] {"M_seq", "antenastructure", 123});          
            dtMaster.Rows.Add(new object[] {"M_seq", "slno", 1});          
            dtMaster.Rows.Add(new object[] {"M_seq", "servicelevel", 133});          
            dtMaster.Rows.Add(new object[] {"M_seq", "powersupply", 154});          
            dtMaster.Rows.Add(new object[] {"M_seq", "azimheight", 124});

            dtMaster = dtMaster.AsEnumerable().Where(x => dtFirstValidRows.Contains(x.Field<string>("Masterfield"))).CopyToDataTable();
        }
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관