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

Parametarski upit i C#

[es] :: .NET :: .NET Desktop razvoj :: Parametarski upit i C#

Strane: 1 2

[ Pregleda: 8031 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
77.46.155.*

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Parametarski upit i C#27.10.2007. u 15:44 - pre 200 meseci
Pa kad malo bolje pogledam kod greska je u tome sto je parametar dodat objektu command, a on u stvari nije SelectCommand od tog adaptera. Ovako probaj...
Code:
          string strKonekcije;
            string strKomande;
                
            strKonekcije = "Provider=Microsoft.JET.OLEDB.4.0;" + @"Data Source=C:\baza.mdb";
            OleDbConnection connection = new OleDbConnection(strKonekcije);

            strKomande = "SELECT * FROM injekcije WHERE sifra_injekcije=@sifra_injekcije";
            OleDbDataAdapter daBaza = new OleDbDataAdapter(strKomande,strKonekcije);

            OleDbParameter parametar = new OleDbParameter("@sifra_injekcije", OleDbType.VarChar);

          
            parametar.Direction = ParameterDirection.Input;
            parametar.Value = tbUnosSifra.Text;
            
            daBaza.SelectCommand.Parameters.Add(parametar); 
                
            connection.Open();
            daBaza.Fill(dsBaza,"injekcije");
            connection.Close();


Jbg. na brzinu kad sam gledao kod, mislio sam da je dobro ...
RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.adsl.sezampro.yu.



Profil

icon Re: Parametarski upit i C#27.10.2007. u 16:44 - pre 200 meseci
Konacno... radi...

Nadam se da nisam puno smorio oko ovoga, j*bi ga amater...

Ako budem imao jos problema, nastavljam temu pa ko je raspolozen....

@aleksandarpopov
Hvala, mozda se nekad i sretnemo u Senti, izlazio sam tamo u "Bali" i jos neki klub pre nekih 6-7 godina... Hvala jos jednom
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.adsl.sezampro.yu.



Profil

icon Re: Parametarski upit i C#27.10.2007. u 21:46 - pre 200 meseci
Evo me opet...

Imam sada problem sa INSERT komandom.
Probao sam da napravim nesto na osnovu koda za SELECT komandu, ali bezuspesno...

Evo ga kod, i sve ideje su dobrodosle...

Code:
private void btnUnesi_Click(object sender, EventArgs e)
        {
            string strKonencija;
            string strKomanda;
            strKonencija = "Provider=Microsoft.JET.OLEDB.4.0;" + @"Data Source=c:\baza.mdb";
            OleDbConnection konekcija = new OleDbConnection(strKonencija);

            strKomanda = "INSERT INTO injekcije VALUES ?,?";

            OleDbDataAdapter daBaza = new OleDbDataAdapter(strKomanda, strKonencija);

            OleDbParameter sifra = new OleDbParameter("", OleDbType.VarChar);
            sifra.Direction = ParameterDirection.Input;
            sifra.Value = tbUnosSifra.Text;
            daBaza.InsertCommand.Parameters.Add(sifra);
            
            OleDbParameter injekcija = new OleDbParameter("", OleDbType.VarChar);
            injekcija.Direction = ParameterDirection.Input;
            injekcija.Value = tbUnosInjekcija.Text;
            daBaza.InsertCommand.Parameters.Add(injekcija);
            
        }


Greska koja se javi je: Object reference not set to an instance of an object.

Znam otprilike sta znaci, ali smisao ne mogu da skontam.

Pretpostavljam da cu i sa UPDATE imati problema. :(
 
Odgovor na temu

Shevchenko
Nikola Vasiljevski

Član broj: 37756
Poruke: 218
*.migcomputers.co.yu.

Sajt: www.vasiljevski.com


+2 Profil

icon Re: Parametarski upit i C#28.10.2007. u 02:43 - pre 200 meseci
Prvo posle VALUES stavi "@sifra, @injekcija"
Ne mozes definisati parametar koji nema ime :) A ti to ovde radis.
Code:

OleDbParameter sifra = new OleDbParameter("", OleDbType.VarChar);

Umesto toga stavi
Code:

OleDbParameter sifra = new OleDbParameter("@sifra", OleDbType.VarChar);


Na kraju ti fali deo koji zapravo vrsi insertovanje u bazu
Code:

            connection.Open();
            daBaza.Fill(dsBaza,"injekcije");
            connection.Close();

Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
77.46.157.*

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Parametarski upit i C#28.10.2007. u 09:25 - pre 200 meseci
Pogledaj klasu OleDbCommandBuilder, pomocu nje mozes sve DML SQL ove sam da izgenerises automatski na osnovu tvoje SELECT komande.
RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.adsl.sezampro.yu.



Profil

icon Re: Parametarski upit i C#28.10.2007. u 17:46 - pre 200 meseci
@shevcenko
Nisam stavio imena parametara jer sam negde procitao da kada se radi sa Access-om dovoljno je staviti ? ili vise njih, pa onda istim redosledom definisati parametre.
Probao sam da stavim i imena i da promenim ? u @ i opet nece.
Napisao sam sve i sa daBaza.Fill i sada mi ne vraca nikakvu gresku, ali ne puni bazu.

@aleksandarpopov
Pogledao sam u MDSN-u, nasao sam definisanje CommandBuilder-a ali mi sve to izgleda komplikovanije.

-----------------------------------------------
@za sve
Mogu li ja da podesim parametre u properties Data Adaptera kada ga prevucem iz toolbox-a???
Tamo mi se odmah generisu Insert, Delete, i Update komande kada definisem Select komandu.
Za sve posebno ima da podesim parametre koji se sami generisu na osnovu komande.

Ako to moze da se uradi, da li neko zna sta treba da upisem u Value polje da bi uzimalo vrednost sa textBox-a???

Koliko sam skontao, sve to moze da zameni ovaj kod koji se pise, jedino posle dodati liniju dsBaza.Fill(dsBaza) i liniju za otvaranje i zatvaranje konekcije.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
77.46.155.*

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Parametarski upit i C#28.10.2007. u 18:19 - pre 200 meseci
Pa kad prevuces dataadapter po defaultu u onom wizardu on generise sve potrebne sqlove i parametre ako se select odnosi na jednu tabelu bez joinova. Preporucujem ti da procitas malo o datasetovima i nacinima pristupanja podacima iz .NET-a... ako koristis datasetove i dataadaptere ti uglavnom radis ovako : podaci se prevuku na klijenta u dataset, izvrse se promene u datasetu(ne direktno u bazi) za tim se pozove metod Update dataadaptera koji na osnovu stanja "slogova" u datasetu pozove potrebne sql ove za promenjene slogove i snimi promene u bazu... ovo ti je pojednostavljeno... procitaj malo o tome. Tako da u principu ne treba da radis sa dml sql-ovima i textboxovima direktno. Takodje pogledaj i databinding. A inace kad koristis parametre, koristi ih sa imenima @imeparametra manje ce te boleti glava kasnije.
RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.adsl.sezampro.yu.



Profil

icon Re: Parametarski upit i C#29.10.2007. u 22:24 - pre 200 meseci
Samo da javim da sam uspeo da odradim i INSERT, i UPDATE i DELETE naredbu...

Evo i kako (npr, INSERT, a ostalo samo menjam query):
Code:

private void btnUnesi_Click(object sender, EventArgs e)
        {
            OleDbConnection konekcija = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" 
                + @"Data Source=c:\baza.mdb");
            OleDbCommand komanda = konekcija.CreateCommand();
            komanda.CommandText = "INSERT INTO injekcije VALUES (@sifra,@injekcija)";

            OleDbParameter sifra = new OleDbParameter("@sifra", OleDbType.VarChar);
            sifra.Direction = ParameterDirection.Input;
            sifra.Value = tbUSifru.Text;
            komanda.Parameters.Add(sifra);

            OleDbParameter injekcija = new OleDbParameter("@injekcija", OleDbType.VarChar);
            injekcija.Direction = ParameterDirection.Input;
            injekcija.Value = tbUInjekciju.Text;
            komanda.Parameters.Add(injekcija);

            konekcija.Open();
            komanda.ExecuteNonQuery(); 
            konekcija.Close();


Koliko sam shvatio, ExecuteNonQuery se koristi kada upit ne vraca redove.


 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.adsl.static.sezampro.yu.



Profil

icon Re: Parametarski upit i C#30.10.2007. u 12:51 - pre 200 meseci
Posto sam resio problem oko parametarskih upita, imam jos po koje pitanje, ali ne znam da li da otvaram novu temu, pa ako bude bilo potrebno uradicu to.

Kako bi mogao da napravim da pre nego sto se podaci unesu u bazu da se izvrsi neka provera da li je vrednost polja textBoxSifra u bazi zauzeta (Primary Key). Pa ako jeste, da mi ne vrati gresku, nego neki MessageBox (za MessageBox znam da uradim, ali mi je problem uslov).
Probao sam da uradim sa SELECT upitom i dataAdapterom, nesto tipa:

Code:

OleDbConnection konekcija = new OleDbConnection("Provider....");
// ovde ide definicija INSERT komande

strKomandaSelect = "SELECT sifra FROM injekcije";
OleDbDataAdapter daBaza = new OleDbDataAdapter(strKomanda,konekcija);

//ovde ide definicija Parametara za INSERT komandu

if(textBox.Text == sta ovde da napisem)
{
      MessageBox.Show("bla bla bla");
}
else
{
      konekcija.Open();
      komandaInsert.ExecuteNonQuery();
      konekcija.Close();
}



Da li uposte ovo ima smisla sto sam napisao, ili se radi na drugi nacin i koji??

Hvala...
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Parametarski upit i C#30.10.2007. u 13:51 - pre 200 meseci
http://en.wikipedia.org/wiki/Exception_handling
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.smin-1.sezampro.yu.



Profil

icon Re: Parametarski upit i C#31.10.2007. u 19:05 - pre 200 meseci
Hvala....

Sredio sam kako treba i radi....
Ucim polako.... valjda ce biti nesto od mene
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.smin-1.sezampro.yu.



Profil

icon Re: Parametarski upit i C#02.11.2007. u 22:23 - pre 200 meseci
Javila su mi se nova dva problema.

1) Dodao sam u tebelu novi atribut "rbr#" (to je primary key) i stavio da bude autonumber. Kada popunim textboxove na formi i kliknem na upis, upit nece da se izvrsi nego se vrati greska: "Number of query values and destination fields are not the same". Kapiram sta to znaci, da broj polja u upitu i u tabeli nije isti.

Evo ga i upit: "INSERT INTO EvidencijaInjekcija VALUES (@datum,@ime,@prezime,@brKartona,@osiguranje,@sifraInjekcije,@injekcija)".

Zar ne bi trebalo da se 'rbr#' sam generise s obzirom da je autonumber?
I da li neko zna neko sta treba da uradim da bi ovo proradilo?

2) Uradio sam jedan upit koji vrsi COUNT, "SELECT COUNT (*) FROM evidencija WHERE br_kartona=@brKartona".
Na krajju koda sam napisao:

konekcija.Open();
komanda.ExecuteScalar();
konekcija.Close();

Sta da uradim da bi mi rezultat brojanja ispisao u textBox???

p.s. ExecuteScalar sam napisao jer valjda se to pise kada upit treba da vrati neki broj. ili gresim?
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
77.46.156.*

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Parametarski upit i C#03.11.2007. u 09:32 - pre 200 meseci
1.
Googlaj

2.
Code:
int a = (int)myReader.ExecuteScalar();
   txtbox.text = a.toString();

RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.smin-1.sezampro.yu.



Profil

icon Re: Parametarski upit i C#05.11.2007. u 10:16 - pre 200 meseci
Ovo drugo sam resio. Hvala ti.
Ali problem je oko prvog pitanja jer nemogu nista da nadjem....
 
Odgovor na temu

bunker
Srđan Savković
Smederevo

Član broj: 4495
Poruke: 239
195.252.78.*



Profil

icon Re: Parametarski upit i C#05.11.2007. u 20:02 - pre 200 meseci
da si guglao, nasao bi: Google: "sql insert"

Treba da upises imena kolona koje "insertujes", kada ih ne navodis sve.

Ovi ljudi su ti bas mnogo pomogli. Potrudi se.

Nije važno stići prvi. Važno je prvo da stigneš.
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

Član broj: 96246
Poruke: 148
*.smin-1.sezampro.yu.



Profil

icon Re: Parametarski upit i C#05.11.2007. u 21:39 - pre 200 meseci
Ne mogu da verujem....
Guglao jesam, ali ne znam kako mi je promaklo da vidim nazive kolona u zagradama...

Izvinjavam se svima...
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Parametarski upit i C#

Strane: 1 2

[ Pregleda: 8031 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

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