比较两个数据集,如果C#中的列值为1,则添加星号

时间:2019-12-25 10:25:09

标签: c# .net dataset concatenation

我有两个数据集来比较和排除相同的记录  这是我的代码,可以正常运行

    for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
    {
        bool found = false;
        foreach (DataRow dr2 in ds1.Tables[0].Rows)
        {
            string table2 = dr2["code"].ToString();
            string deletedVchr = dr2["type"].ToString();
            if (i.ToString() == table2.ToString() && deletedVchr == "0")
            {
              found = true;
            }
         }
         if (!found )
         dsnew.Tables[0].Rows.Add(i);              
      }

如果表1的列(类型)具有星号(*),我只想在数据集中添加星号(*) 值1

这是我的桌子

             Table 1
           code          type
             1            0
             2            1  

     Table 2
      code
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9
       10
     Expected Record Table 
          code
            0
            2*
            3
            4
            5
            6
            7
            8
            9
           10

1 个答案:

答案 0 :(得分:1)

我认为应该这样做:

for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
        {
            bool found = false;
            bool asterisk = false;
            foreach (DataRow dr2 in ds1.Tables[0].Rows)
            {
                string table2 = dr2["code"].ToString();
                string deletedVchr = dr2["type"].ToString();
                if (i.ToString() == table2.ToString() && deletedVchr == "0")
                {
                  found = true;
                }
                else if (i.ToString() == table2.ToString() && deletedVchr == "1")
                {
                  asterisk = true;
                }
             }
             if (!found && !asterisk)
                dsnew.Tables[0].Rows.Add(i); 
             if(asterisk)
                dsnew.Tables[0].Rows.Add(i+"*");        
          }