Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DataAdapter i DataSet mogucnosti?

[es] :: .NET :: DataAdapter i DataSet mogucnosti?

[ Pregleda: 3911 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl.sezampro.yu.



+3 Profil

icon DataAdapter i DataSet mogucnosti?10.07.2007. u 22:49 - pre 204 meseci
Interesuje me kako da iskristim DataSet u cilju prikazivanja jednog reda u Bazi (SQL Server) a ne citave tabele. Evo koda sa kojim pokusavam to i da ucinim!!

Code:

Dim con As New SqlClient.SqlConnection(strCon)
        con.Open()
        Try

        '
            Dim da As SqlClient.SqlDataAdapter
            Dim ds As New DataSet
            Dim cmd As New SqlClient.SqlCommand
            Dim strIdUce As String

            strIdUce = "SELECT ID_Ucenik " & _
            "FROM tPodUce" & _
            " WHERE ID_Skola=" & frmDialog.lblIDSkole.Text & " AND ID_Ucenik=" & frmUnoUce.cboSifUce.Text



            da = New SqlClient.SqlDataAdapter(strIdUce, con)
            da.Fill(ds, "tPodUce")




            frmUnoUce.txtIme.Text = ds.Tables("tPodUce").rows("Ime").ToString
           

            da.Dispose()
            ds.Dispose()

            con.Close()
        Catch ex As Exception
            MessageBox.Show("Greska!")
        End Try


Znaci zelim da izdvojim samo jedan red na osnovu zadatih kriterijuma!
Nadam se da ce biti jasno po kodu sta zelim da kazem!

Gde gresim?
Hvala


[Ovu poruku je menjao borcha dana 11.07.2007. u 00:35 GMT+1]
 
Odgovor na temu

Shevchenko
Nikola Vasiljevski

Član broj: 37756
Poruke: 218
212.200.70.*

Sajt: www.vasiljevski.com


+2 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 07:15 - pre 204 meseci
Pa po mom misljenju, ako zelis samo jedan red , bolje resenje je da umesto DataSeta koristis DataReader. DataAdapter ti je nepotreban.
Kod bi izgledao ovako nekako:
Code:

Dim con As New SqlClient.SqlConnection(strCon)
        con.Open()
        Try

        '
            Dim reader As New SqlClient.SqlDataReader
            Dim cmd As New SqlClient.SqlCommand
            Dim strIdUce As String

            strIdUce = "SELECT ID_Ucenik " & _
            "FROM tPodUce" & _
            " WHERE ID_Skola=" & frmDialog.lblIDSkole.Text & " AND ID_Ucenik=" & frmUnoUce.cboSifUce.Text

            reader = strIdUce.ExecuteReader
            reader.Read()
            frmUnoUce.txtIme.Text = reader["ime colone"].Value.ToString()
            reader.Close()

            con.Close()
        Catch ex As Exception
            MessageBox.Show("Greska!")
        End Try



Proveri kod, posto sam ga pisao iz glave. A i ja sam vise C# programer, pa je moguce da sam negde pogresi sintaksu, ali ideja je bitna ;)

[Ovu poruku je menjao Shevchenko dana 12.07.2007. u 03:43 GMT+1]
Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 08:03 - pre 204 meseci
Na prvi pogled ovo ne valja:
Code:
ds.Tables("tPodUce").rows("Ime").ToString

Moras da das indeks reda, pa ime kolone:
Code:
ds.Tables("tPodUce").rows(0)("Ime").ToString


America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Function
Amel Music
//none
BiH

Član broj: 26785
Poruke: 27
89.146.181.*



Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 09:36 - pre 204 meseci
Ako baš želiš uzeti samo Id, možeš onda koristiti SqlCommand.ExecuteScalar(), vraća ti prvu vrijednost u zadanom upitu, a pošto tebi i treba samo jedna, nećeš imati problema.

C# code::
int id = int.Parse(command.ExecuteScalar().ToString());

It's important that you never stop asking questions!
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 11:47 - pre 204 meseci
Hvala dusty!!
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 11:57 - pre 204 meseci
Prijavljuje mi gresku na (kad kompajlira kod)

[cod] reader = strIdUce.ExecuteNonQuery()
[/cod]

a da ne ide mozda:

[cod] reader = strIdUce.ExecuteScalar
[/cod]

U knjizi Alison Blater kaze da je ova druga za izdvajanje pojedinacnog zapisa??
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 12:10 - pre 204 meseci
ExecuteNonQuery izvrsava komandu koja ne vraca podatke, vec broj redova koji su procesirani. Npr. za update, insert, delete, poziv neke storke koja vraca vrednosti kroz parametre i sl. Znaci ne-upite. Koleza Shevchenko je garant mislio na ExecuteReader.

ExecuteScalar je prava stvar ako upit treba da ti vrati samo jednu-jedinu vrednost (npr. upit slican select ime from Imena where imenaID = 5), tj. metoda izvrsava komandu i vraca vrednost prvog reda prve kolone, ukoliko rezultat upita ima vise redova i kolona.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 12:27 - pre 204 meseci
Da ok, shevchenko radi sa C# tako da nije problem. Execute Reader je u pitanju ExecuteNonQuery znam da vraca broj rezultata tj. poslednjeg unetog!!

Pokusavam i sa SqlCommand.ExecuteScalar ne ide, pokazuje neku gresku!
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 12:51 - pre 204 meseci
Citat:
poslednjeg unetog


Ne, samo broj procesiranih redova. Zasto to napominjem, zamisli situaciju da si insertovao 10 redova podataka. Znaci poslednji red ima id 10. Obrises poslednja dva reda. Insertujes jos jedan red, poslednji id je 11, a ExecuteNonQuery koji je izvrsio taj insert ce vratiti 1. Ako izvrsis select * from nesto preko ExecuteNonQuery dobices 9, jer je toliko redova procesirano.

Citat:
Pokusavam i sa SqlCommand.ExecuteScalar ne ide, pokazuje neku gresku!


Daj da vidimo upit i gresku koju ti izbacuje.

Evo jedan primer, mozda pomogne:
Code:

dim cmd as new SqlCommand("select * from tabela order by tabelinID desc", con) 'con je otvorena konekcija na bazu
dim id as int
id = CInt(cmd.ExecuteScalar())


Ovim kodom ce ti vratiti poslednji id u tabeli (mada postoji TSQL komanda koja vraca poslednji identifier). Nisam VB-ovac pa sigurno ima neka sintaksna greskica, but you'll get the picture
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 13:04 - pre 204 meseci
Evo koda, ali nije sa SQlCommand varijantom nego je Reader tu. Sve jedno imam oped gresku:

Code:
 Dim dr As SqlClient.SqlDataReader
        Dim cmd As SqlClient.SqlCommand
        Dim strIdUce As String

        strIdUce = "SELECT ID_Ucenik " & _
        "FROM tPodUce" & _
        " WHERE ID_Skola=" & frmDialog.lblIDSkole.Text & " AND ID_Ucenik=" & frmUnoUce.cboSifUce.Text

        cmd = New SqlClient.SqlCommand(strIdUce, con)
        dr = cmd.ExecuteReader
        dr.Read()
        frmUnoUce.txtIme.Text = dr("Ime")
        frmUnoUce.txtPrezime.Text = dr("Prezime")



evo i prilog slika!

Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 13:26 - pre 204 meseci
Pretpostavljam da konekcija (con) ka bazi postoji, samo da je nisi ovde napisao ?
Prvo sto mi bode oci je dr("Ime") i dr("Prezime"), a u upitu si stavio samo SELECT ID_Ucenik , tako da te kolone ne postoje u rezultatu upita.

Ostalo mi deluje uglavnom ok .... uglavnom
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 13:32 - pre 204 meseci
Koja sam ja budala ee! Stvarno ih nema u upitu.....Hvala ti!!!
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 13:33 - pre 204 meseci
Sad je bolje, jel!?

Sub PrikazPojedinacnoUcenikaClikomNacboSifra_frmUnoUce()
Dim con As New SqlClient.SqlConnection(strCon)
con.Open()


'
Dim dr As SqlClient.SqlDataReader
Dim cmd As SqlClient.SqlCommand
Dim strIdUce As String

strIdUce = "SELECT ID_Ucenik,Ime,Prezime " & _
"FROM tPodUce" & _
" WHERE ID_Skola=" & frmDialog.lblIDSkole.Text & " AND ID_Ucenik=" & frmUnoUce.cboSifUce.Text

cmd = New SqlClient.SqlCommand(strIdUce, con)
dr = cmd.ExecuteReader
dr.Read()
frmUnoUce.txtIme.Text = dr("Ime").ToString
frmUnoUce.txtPrezime.Text = dr("Prezime").ToString



con.Close()


Da,da sad radiii!
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 14:06 - pre 204 meseci
Samo jos jedan komentar, umesto

SELECT ID_Ucenik,Ime,Prezime

stavi

SELECT TOP 1 ID_Ucenik,Ime,Prezime


manji pritisak na bazu, ovaj query ce vratiti samo jedan red, koliko tebi i treba. Bez obzira sto ti citas samo jedan red, bez TOP 1 upit ce tvojoj aplikaciji vratiti sve redove.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 14:13 - pre 204 meseci
Ok, razumem a sta kazes na:


Code:
SELECT * 

SELECT ID_Ucenik,Ime,Prezime 


To isto pravi problem (opterecuje)!!?

 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: DataAdapter i DataSet mogucnosti?11.07.2007. u 14:25 - pre 204 meseci
Nije bitan broj kolona (sem ako nisi napravio cirka 1024 ), koliko je bitan broj redova koje ti vraca. Posto koristis samo prvi red, ostali su visak, je'l. Sto ce reci da ce taj visak da nepotrebno optereti izvrsavanje upita, a zatim i prenos do tvoje aplikacije i na kraju resurse koje tvoja aplikacija alocira da bi smestila te podatke, od kojih maltene 99% odbacujes.

Prakticno, videces da se takav upit sporije izvrsava nego kada mu das top i upit vrati samo jedan red. Mozda ti to sada ne izgleda sporo, ali cekaj da baza naraste
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Shevchenko
Nikola Vasiljevski

Član broj: 37756
Poruke: 218
212.200.70.*

Sajt: www.vasiljevski.com


+2 Profil

icon Re: DataAdapter i DataSet mogucnosti?12.07.2007. u 02:44 - pre 204 meseci
Citat:
dusty: Koleza Shevchenko je garant mislio na ExecuteReader.

Da mislio sam na ExecuteReader :) Ali tako to biva kada pisem kod na brzinu u 8 sati ujutru ;) Ispravio sam :)
Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
 
Odgovor na temu

[es] :: .NET :: DataAdapter i DataSet mogucnosti?

[ Pregleda: 3911 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.