2014-02-25 75 views
0

我需要识别表中的重复列,并添加一个新列,其中包含重复列的编号。在此先感谢 这是需要编辑的表。将数据表中的重复行数添加到新列中

enter image description here

结果表:

enter image description here

+0

不太确定你在问什么...... – Noctis

+1

在数据库中创建一个视图,然后将它显示为一个包含C#的单个表。 – smoore4

+0

我需要计算第二个表中重复列的数量,并将复制的数字作为单独的列添加到结果表中,如上所示 –

回答

1

在SQL中,尝试这样的事情:

SELECT FirstName, COUNT(*) FROM FirstNames GROUP BY FirstName 
+0

嗨,谢谢我能够从这个答案得到所需的结果 –

0

你可以试试这个

void tables() 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.AddRange(new DataColumn[1] { new DataColumn("Name") }); 
     dt.Rows.Add("John"); 
     dt.Rows.Add("Mike"); 
     dt.Rows.Add("Ann"); 
     dt.Rows.Add("Sam"); 
     DataTable dt1 = new DataTable(); 
     dt1.Columns.AddRange(new DataColumn[1] { new DataColumn("Name") }); 
     dt1.Rows.Add("John"); 
     dt1.Rows.Add("John"); 
     dt1.Rows.Add("Mike"); 
     dt1.Rows.Add("Ann"); 
     dt1.Rows.Add("Ann"); 
     dt1.Rows.Add("Ann"); 
     DataTable dt2 = new DataTable(); 
     dt2.Columns.AddRange(new DataColumn[3] { new DataColumn("Name"), new DataColumn("Available"), new DataColumn("Count") }); 
     int count = 0; 
     foreach (DataRow r in dt.Rows) 
     { 
      count = dt1.Select("Name='" + r[0].ToString() + "'").Count(); 
      if (count > 0) 
       dt2.Rows.Add(r[0].ToString(), "available", count.ToString()); 
      else 
       dt2.Rows.Add(r[0].ToString(), "unavailable", count.ToString()); 
     } 
    } 
+0

嘿thx的答案 - 它确实有帮助! DataTable dt是我们跟随计数的最终结果 - 据我了解,您的答案假定它是存在的以获得计数。 – BKSpurgeon

0

在LINQ:

table.GroupBy (t => t.Name).Select (t => new {Name = t.Key, Count = t.Count()}) 

假设:

  • table是包含第一台
  • Name的集合是包含名称的列名
1

如果您想要LinQ,并记住在你的文件的顶部使用System.Linq;,试试这个:

class Program 
    { 
     public static void Main(string[] args) 
     { 
      Console.WriteLine("Hello World!"); 

      string[] data = new String[] {"john","john","mike","ann","ann","ann"}; 

      var results = data.GroupBy(x => x).Select(g => new {name = g.Key, count = g.Count()}); 

      foreach (var result in results) 
      { 
       Console.WriteLine("{0} occurred {1} times...", result.name, result.count); 
      } 


      Console.Write("Press any key to continue . . . "); 
      Console.ReadKey(true); 
     } 
    } 
相关问题