2013-07-29 2 views
0

Я преобразовал xml в DataTable. У меня есть datatable похожее на это. Это описание номеров в одном конкретном отеле. Я хочу разбить его на две комнаты, если тип платы, тип комнаты, стоимость номера одинаковы.Значимые значения из DataTable C#

Room 1 

Boards Type   Room Type   Room Price  Sleep Up To 

Room Only    Double Standard  301.280  2 Guests  

Room Only    Double Standard  301.280  2 Guests  

Я хочу сделать это похожим на это.

Room 1 

Boards Type   Room Type   Room Price  Sleep Up To 

Room Only    Double Standard  301.280  2 Guests 

Room 2 

Boards Type   Room Type   Room Price  Sleep Up To 

Room Only    Double Standard  301.280  2 Guests 

Ниже мой кодекс, который я попытался сломать, не используя гостей. после этого я нашел, что это не правильный способ сломать это, только не используя гостей. поэтому я хочу, чтобы разбить это, используя 3 колонки и хотите, чтобы напечатать в комнате 2.

PlaceHolder1.Controls.Add(new LiteralControl("<div class='type1 pd10-lr pd15-tb'>")); 

       var noofroom = (from row2 in dt2.AsEnumerable() 
           where (Int64)row2["hotelcode"] == hotelcode 
            select row2.Field<string>("guests")).Distinct(); 

       int a = 1; 

       foreach (var rcount in noofroom) 
       { 


         PlaceHolder1.Controls.Add(new LiteralControl("<div class='rhead'>" + 
       "Room " + a + "" + 
       "</div>" + 
          "<table class='roomtbl'>" + 
         "<tr>" + 
          "<td class='tdaltbg'>" + 
           "<strong>&nbsp;" + 
          "Board Type</strong></td>" + 
          "<td class='style30'>" + 
           "<strong>&nbsp;" + 
          "Room Type</strong></td>" + 
          "<td class='tdaltbg'>" + 
           "<strong>&nbsp;&nbsp; Room Price</strong></td>" + 
           "<td class='style30'>" + 
           "<strong>&nbsp;" + 
          "Sleep Up To</strong></td>" + 
          "<td class='tdaltbg'>" + 
           "<strong></strong></td>" + 
         "</tr>")); 

         DataRow[] drs = dt2.Select("hotelcode='" + hotelcode + "' AND guests='" + rcount + "'"); 
         foreach (DataRow dr in drs) 
         { 
          PlaceHolder1.Controls.Add(new LiteralControl("<tr>" + 
            "<td class='tdaltbg'>" + 
            "&nbsp;" + 
            "" + dr["board"] + "</td>" + 
           "<td class='style30'>" + 
            "" + dr["roomtype"] + "</td>" + 
           "<td class='tdaltbg'>" + 
            "&nbsp;" + 
            "£ " + dr["amount"] + "</span></td>" + 
             "<td class='style30'>" + 
            "&nbsp;" + 
            " " + dr["guests"] + " Guests</span></td>" + 
           "<td class='tdaltbg'>")); 

          PlaceHolder1.Controls.Add(new LiteralControl("<input type='radio' name='t1' data-price='308.560' checked='checked'/>" + 
           "</td>" + 

          "</tr>")); 
         } 
         PlaceHolder1.Controls.Add(new LiteralControl("</table>")); 
         a++; 

       } 
+0

Я бы предложил посмотреть @ [this SO post] (http://stackoverflow.com/questions/1199176/how-to-select-distinct-values-from-datatable/1199956#1199956) –

ответ

0

Пожалуйста, попробуйте это. Здесь несколько столбцов могут передаваться как параметр и true для разных.

Смежные вопросы