• 21-03-2013, 03:18:31
    #1
    Arkadaşlar Merhaba,

    Uçak seferleri tablom da flights_Id diye sütun var ve bu sütunda ki değerlerden 2 tane si aynı ise yani

    {ID=1,flights_Id=1},{ID=2,flights_Id=1}
    ID'leri farklı ama flights_Id leri aynı olan satırlar şuanda tek satır halinde geliyor..

    DataTable'da ben flightsId numaraları aynı olanları "<br>" ile satır içinde alta eklemesini istiyorum eğer flightsId farklı ise satır olarak eklemeye devam etsin istiyorum bunun için kendim şu şekilde bir şey yaptım. Fakat doğru çalışmıyor.

    DataTable dt = new DataTable();
        DataColumn flightNo = new DataColumn("flightNo");
        DataColumn aircraft = new DataColumn("aircraft");
        DataColumn operatorCode = new DataColumn("operatorCode");
        DataColumn operatorName = new DataColumn("operatorName");
        DataColumn departureAirport = new DataColumn("departureAirport");
        DataColumn departureTime = new DataColumn("departureTime");
        DataColumn departureAirportName = new DataColumn("departureAirportName");
        DataColumn departureCityName = new DataColumn("departureCityName");
        DataColumn arrivalAirport = new DataColumn("arrivalAirport");
        DataColumn arrivalTime = new DataColumn("arrivalTime");
        DataColumn arrivalAirportName = new DataColumn("arrivalAirportName");
        DataColumn arrivalCityName = new DataColumn("arrivalCityName");
        DataColumn flightId = new DataColumn("flights_Id");
        dt.Columns.AddRange(new DataColumn[] { flightNo, aircraft, operatorCode, operatorName, departureAirport, 
                                               departureTime, departureAirportName, departureCityName, arrivalAirport, arrivalTime, arrivalAirportName, 
                                               arrivalCityName, flightId });
    
        var result = ds.Tables["result"];
        var flights = ds.Tables["flights"];
        var legs = ds.Tables["legs"];
        var fares = ds.Tables["fares"];
        var personFares = ds.Tables["personFares"];
        var segmentNames = ds.Tables["segmentNames"];
    
        for (int i = 0; i < legs.Rows.Count; i++)
        {
            if (legs.Rows[i]["flights_Id"] == legs.Rows[i+1]["flights_Id"])
            {
                //burada yapmak istediğim şey eğer flights_Id bir sonraki kayıt ile eşitse <br> olarak eklemesi satır olarak değil.                
                strFlightNo = legs.Rows[i]["flights_Id"] + "<br>" + legs.Rows[i]["flightNo"];
            }
            DataRow newRow = dt.NewRow();
            newRow["flightNo"] = legs.Rows[i]["flights_Id"] + " " + legs.Rows[i]["flightNo"];
            dt.Rows.Add(newRow);
        }
        rpFlightsList.DataSource = dt;
        rpFlightsList.DataBind();
  • 22-03-2013, 14:23:08
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Aslında aynı satırda gelmiyor, onlar json'a o şekilde yazılır. Direk split yaparak neden eklemiyorsun?
    Json'un tamamını koyarsan bir bakalım, bu kadar işlem yapmana ve zaman kaybetmene gerek yok bence. Ama yok illa bu şekilde yapıcam, bana böyle kolay diyorsan denediğin yöntem doğru çalışmaz çünkü aynı datatable'a süreki row ekliyorsun, ya hata verir ya da sonsuz döngüye girer.
    Yeni bir datatable tanımlayarak onun içerisine ekleme yapın. Datatable'ın select event'ı ile kolayca yapabilirsin.
    dt.Select("flights_Id == 5").CopyToDataTable();
  • 23-03-2013, 11:10:47
    #3
    Bu şekilde denediğimde

    Sözdizimi hatası: '=' işlecinden önce işlenen eksik.

    Şeklinde hata alıyorum
  • 23-03-2013, 12:23:20
    #4
    Tek eşit mi koydun?
  • 23-03-2013, 18:07:40
    #5
    Hayır yazdığın şekilde yaptım ama bu şekilde bir hata alıyorum
  • 24-03-2013, 15:39:08
    #6
    Tek eşit kullanarak denermisin.
    Olmazsa kodunu buraya yapıştır kontrol edeyim.