[ borcha @ 15.07.2007. 16:35 ] @
Da li u jednoj proceduri (sub rutini) se mogu nalaziti dva DataReadera-a. Imam problem sas sukobom dva dimenzionisana sql datareadera. Jedan se zove drRaz a drugi drOde, njih dvoje se nalaze u jednoj sub rutini. Kaze Nemoze izvrsiti drugi DataReader tj. drOde zato sto drugi nije zatvoren...evo koda....


Code:
  con = New SqlClient.SqlConnection(strCon)
        con.Open()
        '
        Dim drBrRaz As SqlClient.SqlDataReader
        Dim drBrOde As SqlClient.SqlDataReader


        Dim cmdBrRaz As New SqlClient.SqlCommand(strCon, con)
        Dim cmdBrOde As New SqlClient.SqlCommand(strCon, con)


        cmdBrRaz.CommandType = CommandType.StoredProcedure
        cmdBrOde.CommandType = CommandType.StoredProcedure

        cmdBrRaz.CommandText = "procPog_BrAktivnihRazredaPO_IDSko_IDSkoGod"
        cmdBrOde.CommandText = "procPog_BrAktivnihOdeljenjaPo_IDSko_IDSkoGod"

        cmdBrRaz.Parameters.Add("@IDSko", SqlDbType.BigInt).Value = frmDialog.lblIDSkole.Text
        cmdBrRaz.Parameters.Add("@IDSkoGod", SqlDbType.Int).Value = frmDialog.lblSkoGod.Text

        cmdBrOde.Parameters.Add("@IDSko", SqlDbType.BigInt).Value = frmDialog.lblIDSkole.Text
        cmdBrOde.Parameters.Add("@IDSkoGod", SqlDbType.Int).Value = frmDialog.lblSkoGod.Text

        drBrRaz = cmdBrRaz.ExecuteReader <------Problem

        drBrOde = cmdBrOde.ExecuteReader  <-------Problem


        drBrRaz.Read()
        drBrOde.Read()


Interesuje me da li uopste mogu postojati dva readera u jednoj sub r.....
Hvala
[ Function @ 15.07.2007. 23:30 ] @
There is already an open DataReader associated with this Command which must be closed first.

Napisi prije drBrOde.Read(), drBrRaz.Close().

PS Ne zaboravi zatvoriti konekciju nakon poziva sub-a.
[ borcha @ 15.07.2007. 23:52 ] @
Mislis sve sto se cita mora da se zatvori da bi moglo nesto drugoda se cita?!
Reci mi da li je uopste moguse imati dva Readera u istoj Sub...?

[ borcha @ 15.07.2007. 23:58 ] @
Da,da uspeo sam!!! Ono drugo je glupo pitanje,(mogu biti dva Readera u jed. sub-u, da ne mogu nebih uspeo!)

Pozz..Hvala
[ sallle @ 16.07.2007. 20:11 ] @
ima neka fora da jedna konekcija ne moze da podrzi dva readera, vec za svaki reader moras da otvaras novu konekciju...
[ borcha @ 16.07.2007. 20:27 ] @
Da skontao sam da treba dve konekcije. Nego mene muci kako da na naj jednostavniji nacin ubacim podatke u treeView kontrolu iz baze pod. a da ne komplikujem sa readerima, jer kako kazes moram stalno otvarati konekciju...?

Neka petlja ili vec sta... Ako neko ima primer sa petljom a da je jedan Reader u igri?
[ borcha @ 16.07.2007. 23:18 ] @
Uspeo DataReader i TreeNode uz pomoc funkcija (Napravio sam funkcije koje vracaju skup podataka)!seljacko resenje, ali ako neko ima nesto b.....-----> evo primera..

Code:
 Function ra31() As TreeNode
        con = New SqlClient.SqlConnection(strCon)
        con.Open()

        'On Error Resume Next

        Dim dr31 As SqlClient.SqlDataReader
        Dim cmd31 As New SqlClient.SqlCommand(strCon, con)
        cmd31.CommandType = CommandType.StoredProcedure
        cmd31.CommandText = "procPog_UcePoRaz_IdSkola_IDSkoGod"
        cmd31.Parameters.Add("@IDSkola", SqlDbType.BigInt).Value = frmDialog.lblIDSkole.Text
        cmd31.Parameters.Add("@IDSkoGod", SqlDbType.Int).Value = frmDialog.lblSkoGod.Text
        cmd31.Parameters.Add("@Raz", SqlDbType.Int).Value = 3
        cmd31.Parameters.Add("@Ode", SqlDbType.Int).Value = 1
        dr31 = cmd31.ExecuteReader

        tvOde = tvRaz.Nodes.Add("treci")
        tvUce31 = tvOde.Nodes.Add("3/1")
        While dr31.Read()
            ra31 = tvUce31.Nodes.Add(dr31("Prezime") & " " & dr31("Ime"))
        End While

        dr31.Close()

        con.Close()

    End Function


Mozda je nekom i smesno ali meni kao pocetniku je ovo velika stvar!!
Pa ako neko ima neki savet tj. bolju tehniku resavanja ovog istog problema .. da podeli sa vecinom
Hvala, pozzz....