2014-03-03 48 views
1

我有一个在foreach循环中运行的数据表,它在多个sahrepoint网站上获取网站使用信息。我希望能够在添加网站网址的每个foreach迭代旁边添加一列,我只能想出如何添加新行,使网站网址显示在条目下方。像这样:在数据表中编辑一行C#

Data Table

我怎样才能获得url进入上面行?

我的代码如下:

SPListItemCollection items = list.GetItems(query); 
        DataTable aggregatedTable = new DataTable(); 
        foreach (SPListItem item in items) 
        { 
         string url = item["SiteUrl"].ToString(); 
         try 
         { 
          using (SPSite siteadd = new SPSite(url)) 
          using (SPWeb webadd = siteadd.OpenWeb()) 
          { 
           // 


           DataTable table = webadd.GetUsageData(Microsoft.SharePoint.Administration.SPUsageReportType.browser, Microsoft.SharePoint.Administration.SPUsagePeriodType.lastMonth); 
           table.Columns.Add("url"); 
           if (table == null) 
           { 
            // HttpContext.Current.Response.Write("Table Null"); 
           } 
           else 
           { 

            DataRow dr; 

            dr = table.NewRow(); 
            dr["url"] = url; 
            table.Rows.Add(dr); 

            // table.Rows.Add(url); 



            aggregatedTable.Merge(table);//Append the data to previous site data. 
           } 
          } 
         } 
         catch { } 
        } 
        dataGridView1.DataSource = aggregatedTable;//bind datatable with 

回答

1

为什么你添加一个新行你现有的数据表,而你应该设定值你现有的行。

例如

var CurRow = table.AsEnumerable().FirstOrDefault(); 
     table.Columns.Add("url"); 
     if (CurRow != null) 
     { 
      CurRow["url"] = url; 
     }