[ ventura @ 11.03.2015. 19:09 ] @
Pokušavam da napravim neki jednostavan web servis, ali se patim oko ove gluposti već dva sata, i nikako da nabodem rešenje koje radi... a verujem da je neka glupost u pitanju koju ne vidim.

Naime, dole navedena funkcija SendCompletedTransactions treba da vrati neku listu Transaction. Da bi to funkcionisalo ja sam definisao SingleTrans u koji addujem podatke iz svakog datarow-a ,a onda taj SingleTrans addujem u "trans" listu koju nameravam da vratim kao rezultat.

Međutim, problematika je u tome što lista "trans" na kraju dobije npr. 4 itema koliko bi i trebalo jer toliko recorda u bazi i postoji, ali kako se loopuje kroz "dr" sadržaj poslednjeg itema uvek pretaba sve pre njega. Tako da ja dobijem listu sa četiri itema koji su istog sadržaja kao i poslednji data row.

Evo ga i kod:

Code:
<WebMethod()> _
        Public Function SendCompletedTransactions() As List(Of CIWS.Transaction)

            Dim trans As New List(Of CIWS.Transaction)

            Dim cnn As SqlConnection = New SqlConnection(conString)
            Dim cmd As New SqlCommand("EXEC OnLine_LastGameTransactions ", cnn)
            Dim dr As SqlDataReader

            Dim CustomerID, TicketID As String
            Dim SingleTrans As New CIWS.Transaction

            cnn.Open()

            dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

            While dr.Read()

                CustomerID = dr("ID_Player")
                TicketID = dr("TicketID")

                SingleTrans.CustomerID = CustomerID
                SingleTrans.TicketID = TicketID

                trans.Add(SingleTrans)
            End While

            Return trans
        End Function


za slučaj da je bitno kako je definisan Transaction, u pitanju su samo dva stringa, ništa drugo...
Code:
    public class Transaction
    {
        public string CustomerID;
        public string TicketID;
    }
[ dejanet @ 11.03.2015. 19:24 ] @
Zaboravio sam VB, ali mislim da deo:

Dim SingleTrans As New CIWS.Transaction

treba da prebacis u loop (unutar while petlje)..
[ ventura @ 11.03.2015. 19:28 ] @
Neverovatno, svaka čast :)


Lepo kaže ona narodna - ko nema u glavi, taj 3 sata obija google tragajući :)
[ Shadowed @ 11.03.2015. 21:38 ] @
Ili ga izbegnes sasvim:

Code (vbnet):

<WebMethod()> _
        Public Function SendCompletedTransactions() As List(Of CIWS.Transaction)

            Dim trans As New List(Of CIWS.Transaction)

            Dim cnn As SqlConnection = New SqlConnection(conString)
            Dim cmd As New SqlCommand("EXEC OnLine_LastGameTransactions ", cnn)
            Dim dr As SqlDataReader

            cnn.Open()

            dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

            While dr.Read()
                trans.Add(New CIWS.Transaction() With { .CustomerID = dr("ID_Player"), .TicketID = dr("TicketID") } )
            End While

            Return trans
        End Function
 
[ Shadowed @ 11.03.2015. 21:39 ] @
Uh, ovaj syntax highlight za vb.net je odvratan...