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: 8029 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

batasson
Nikola Pasic
Beograd

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



Profil

icon Parametarski upit i C#24.10.2007. u 19:48 - pre 200 meseci
Pozdrav programeri,

Imam jedan problem. Pocetnik sam u C#, i probao sam da napravim neku aplikaciju sa bazom podataka.

Problem je sto ne znam kako da povezem neki text box sa select upitom u Data Adapter-u, da upit kupi parametre sa text box-a i smesta u bazu klikom na neko dugme. koristim Visual Studio 2005 i Access (znam da to retko ko koristi, ali mi je najprostiji da udjem u pricu sa bazama i C#). Negde sam procitao da se za parametarski upit stavlja ? na mesto gde bi trebalo da se unese podatak.
Pa upit lici na: "SELECT * FROM baza WHERE baza.nesto = ?". E kada ja to napisem u Query Builder-u za SelectCommand-u u properties od DataAdapter-a i kliknem na Execute Query, izbaci mi da upisem vrednost. Ali kako da ja to povezem sa textBox-om, pa da uzima vrednost sa textBox-a. I onda prosto klikom na dugme sa forme da se ta vrednost upise u bazu.

Imam isti problem i sa INSERT COMMAND-om gde hocu da vrednosti dovucem sa textBox-ova..

Hvala svima raspolozenima za pomoc!
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: Parametarski upit i C#24.10.2007. u 20:04 - pre 200 meseci
evo ti

SELECT * FROM baza WHERE baza.nesto = ' " + textbox1.text + " '

ako spajas vise tablica umjesto = koristi like.

 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Parametarski upit i C#24.10.2007. u 22:43 - pre 200 meseci
Marko ti je dao primer kako ne treba raditi. Pogotovu deo sa LIKE nema veze sa mozgom.

Pročitaj sledeći tekst:

http://aspnet101.com/aspnet101/tutorials.aspx?id=1

Ukratko:
Code:

sql = "Select * from Employees where Lastname =@LastName" 

...

cmd.Parameters.Add(New SQLParameter("@LastName", ddl.SelectedItem.text))
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

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



Profil

icon Re: Parametarski upit i C#25.10.2007. u 13:15 - pre 200 meseci
Pozdrav,

@jablan
Pogledao sam sajt gde si me uputio, i na osnovu toga uradio kod.

Evo kako izgleda taj kod:


private void buttonPrikazi_Click(object sender, EventArgs e)

{
string connectionString = "Provider=Microsoft.JET.OLEDB.4.0;" + "Data Source = c:\\baza.mdb;";

string commandString = "SELECT * FROM injekcije WHERE sifra_injekcije=@tbUnosSifra";

commandString.Parmeters.Add(new OleDbParameter("@tbUnosSifra", tbUnosSifra.Text));

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(commandString, connectionString);

DataSet dataSet1 = new DataSet();

dataAdapter.Fill(dataSet1);
}

I greska koju mi izbaci nakon build-a je: 'string' does not contain a definition for 'Parmeters'.

A ako commandString napisem ovako: string commandString = "SELECT * FROM injekcije WHERE sifra_injekcije='" & tbUnosSifra.Text & "'";

Opet se javi greska: Operator '&' cannot be applied to operands of type 'string' and 'string'.

Isti upit sam posle napisao u SelectCommand u properties od dataAdapter-a i nece da radi. Query Build-er uradi ispit i vrati mi NULL vrednosti.
Video sam da tamo ima i stavka Parameters, mozda tu treba podesiti parametre, ali ne znam kako.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Parametarski upit i C#25.10.2007. u 13:28 - pre 200 meseci
Probaj da, umesto da samo radiš copy-paste, razumeš šta tačno rade delovi koda koje čitaš, kao i da razumeš greške koje ti vraća kompajler.

Pokušao si da objektu tipa string dodaš parametar. Ima li to smisla? Razumeš li koncepte klase i objekta, atributa i metoda? Ako ne razumeš te osnovne stvari, besmisleno je da prelaziš na naprednije teme tipa rad sa bazom itd...

Ako si baš zapeo, pogledaj primer iz ovog tutorijala, ima više koda, lakše za copy-paste:

http://www.csharp-station.com/Tutorials/AdoDotNet/lesson06.aspx
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

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



Profil

icon Re: Parametarski upit i C#25.10.2007. u 21:53 - pre 200 meseci
Razumem ja to...ali ne u potpunosti.
Rekao sam da sam pocetnik. Slusao sam predmet na faxu pre 2 god.
Radim diplomski iz baza podataka, ali sam za izradu interfejsa uzeo C# jer mi je delovao najprakticnije.
Znam da sve ovo ne opravdava nedovoljno znanje, ali prijavio sam to tako i sada mi je kasno da menjam.

Da li mogu da napisem upit u text za select komandu u properties Data Adaptera???
Video sam da tamo ima da se podese i parametri. E, sada kako ide sintaksa???

Ako napisem upit u Query Builder-u: SELECT * FROM filmovi WHERE ime_filma = sta ovde treba???

Koliko sam skontao posle ime_filma treba da ide ime parametra, ali koji znak ispred (tacna sintaksa)?
Pise da za SQL Server ide '@', a za Access '?' pa ime parametra.
Ja koristim Access i kada stavim '?' prijavljuje mi gresku u upitu.

Druga stvar je parametar. Ima da se podesi "Direction, OleDbType, ParametarName, Precision, Scale, Size, Value" i jos neke stvari za update.
Pretpostavljam da treba da podesim ParametarName i Value, a ovo ostaje po defaultu (Direction=Input,OleDb=VarWChar,Precision=0,Scale=0,Size=0). I kako ide sintaksa za Value (isto pretpostavljam da Value treba da mi ukazuje na objekat, npr textBoxIme).

Da li uopste ovo sto sam napisao moze da se tako uradi???

Eto, ko je raspolozen neka pomogne...

Hvala.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Parametarski upit i C#26.10.2007. u 08:42 - pre 200 meseci
A da ti lepo kao i ostali studenti platiš nekom da ti uradi diplomski? Je*eš znanje, ko još upisuje faks da bi nešto naučio...
 
Odgovor na temu

DaliborP

Član broj: 113174
Poruke: 1173



+3258 Profil

icon Re: Parametarski upit i C#26.10.2007. u 08:49 - pre 200 meseci
@batasson , a koji je to fakultet ako nije tajna?
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
77.46.159.*

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


Profil

icon Re: Parametarski upit i C#26.10.2007. u 11:54 - pre 200 meseci
@jablan
Citat:
A da ti lepo kao i ostali studenti platiš nekom da ti uradi diplomski? Je*eš znanje, ko još upisuje faks da bi nešto naučio...

Svidja mi se kako razmisljas :)

Kad bi malo izmenio redosled, mozda bi ti i proradilo... ali kao sto ti rekose, sedi malo procitaj stosta ako hoces ovim da se bavis... ako ne - plati nekom :)

Code:

string connectionString = "Provider=Microsoft.JET.OLEDB.4.0;" + "Data Source = c:\\baza.mdb;";

string commandString = "SELECT * FROM injekcije WHERE sifra_injekcije=@tbUnosSifra";

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(commandString, connectionString);

dataAdapter.SelectCommand.Parmeters.Add(new OleDbParameter("@tbUnosSifra", tbUnosSifra.Text));

DataSet dataSet1 = new DataSet();

dataAdapter.Fill(dataSet1);


RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

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



Profil

icon Re: Parametarski upit i C#26.10.2007. u 12:14 - pre 200 meseci
@DaliborP
Uopste nije tajna, to je Visa Elektro u Bgd.



@jablan
Mislim da se ovde ljudi mnogo vise bave moralom, i brinu se za znanje drugih ljudi, sto je po mom misljenju nije poenta foruma. Nije fax samo C#, nauci se tamo mnogo drugih pametnih stvari. Rekao sam lepo da mi je diplomski iz baza, a ne C#. C# koristim samo da bi napravio interface za korisnika. Da me ne shvatite pogresno, volim programiranje, ali sam bio previse zauzet oko drugih predmeta da se nisam mogao posvetiti samo jednom.

Bazu sam uradio kako treba, a i aplikaciju u C# jedino sto mi je ostalo je da resim te upite u C# (nije mi problem SQL, vec sintaksa koja se koristi u C#, jer se malo razlikuje). Najsrecniji bi bio kada bi sve znao i nemao nikakvih porblema u izradi aplikacije, ali nije tako.

---------------------------------------------------------------

Hvala svima vama koji iznosite svoje predloge da bi mi pomogli. Ako ste jos raspolozeni za pomoc, samo napred.
Problem ostaje.
Kada izaberem properties Data Adaptera i u SelectCommand-i napisem upit "SELECT * FROM filmovi WHERE ime=?"
Nasao sam da se za Access za parametar koristi ? i to radi, kada build-ujem query pojavi se tablica i trazi vrednost za ime. Nakon toga kada izberem Parameters za SelectCommand-u u properties Data Adaptera, otvori se prozorcic: OleDbParameter Collection Editor. Napisao sam gore sta ima da se podesava. Query mi sam generise parametar pod imenom ime, ali Value ostane nepopunjeno.
Pitanje: Kako da Value polje uputim na textBoxIme i da li je to uopste moguce??? Jer kada upisem u Value vrednost za ime filma, i build-ujem projekat, vrati mi se tacan rezultat u DataGrid. Ali sta da napisem u Value da bi uzimao vrednost sa textBox-a. Treba mi tacna sintaksa za Access.

Pozdrav.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Parametarski upit i C#26.10.2007. u 12:31 - pre 200 meseci
Citat:
batasson: Mislim da se ovde ljudi mnogo vise bave moralom, i brinu se za znanje drugih ljudi, sto je po mom misljenju nije poenta foruma.

A šta je po tebi poenta foruma? Da za*ebeš faks i dobiješ diplomu na tuđe znanje?

I mogao bi da smanjiš malo upotrebu fraze "sintaksa C#-a", jer to o čemu govoriš nije sintaksa. Ali pretpostavljam da ti ni to nije bio omiljen predmet.

Vrednost iz text boxa ubaci u data adapter u event handleru. Ajd sad.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
77.46.159.*

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


Profil

icon Re: Parametarski upit i C#26.10.2007. u 13:08 - pre 200 meseci
Zar ti onaj kod gore ne radi sto treba?
Vrednost parametra popunjavas npr. ovako preko indexa(a mozes i preko imena parametra):
Code:

dataAdapter.SelectCommand.Parameters[0].Value = tajTvojTexBox.Text;


A inace sve ovo imas lepo napisano u MSDN...
RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

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



Profil

icon Re: Parametarski upit i C#26.10.2007. u 18:11 - pre 200 meseci
@jablan
Jako se divim tvom znanju i umecu u C#. Jednog dana bi voleo da budem programer kao ti.
Bio sam sarkastican, za svaki slucaj da napomenem.
Sigurno necu diplomu dobiti na tudje znanje, jer za ove godine skolovanja niko drugi mi nije polagao ispite osim mene samog. I nikada nikome nisam platio da mi nesto uradi vec sam sam grejao stolicu i radio. Kada nisi u kontaktu sa nekim stvarima, izgubis osecaj i ono sto si znao zaboravis.
Ja sam samo trazio pomoc oko jedne sitnice (diplomski je mnogo obimna stvar), a ne da mi se uradi ceo rad.


@aleksandarpopov
Nasao sam u MSDN to, ali ne mogu da pronadjem deo koji sam opisao gore, kada iz toolbox-a prevucem dataAdapter i da podesim njegove parametre za komandu u properities (gore sam sve objasnio).

A sklopio sam i neki kod, koji opet ne radi, pa evo ga, ako ima neko ideja.
Code:

private void buttonPrikazi_Click(object sender, EventArgs e)
        {
            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=?";
            OleDbCommand command = new OleDbCommand(strKomande);
            
            OleDbDataAdapter daBaza = new OleDbDataAdapter(strKomande,strKonekcije);

            OleDbParameter parametar = command.Parameters.Add("sifra_injekcije", OleDbType.VarChar);
            parametar.Direction = ParameterDirection.Input;
            parametar.Value = tbUnosSifra.Text;

            //command.Parameters.Add(new OleDbParameter("sifra_injekcije", tbUnosSifra.Text));
                
            connection.Open();
            daBaza.Fill(dsBaza,"injekcije");
            connection.Close();
        }

Greska koju vraca je da za potrebne parametre nije data nijedna vrednost, a vrednost sam upisao u textBox.

Da li bi bilo bolje da koristim kod za parametre taj sto je napisan ili taj sto je pod komentarom???
 
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#26.10.2007. u 20:10 - pre 200 meseci
Ufff...malo si ga izmixao ovde :) (Mesas neke objekte) Evo ti ovako bi trebalo da radi ;)

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=?";
            OleDbCommand command = new OleDbCommand(strKomande);
            
            OleDbDataAdapter daBaza = new OleDbDataAdapter(strKomande,strKonekcije);

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

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

RTFM
 
Odgovor na temu

batasson
Nikola Pasic
Beograd

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



Profil

icon Re: Parametarski upit i C#26.10.2007. u 21:20 - pre 200 meseci
Ne vredi, opet je ista greska: "No value given for one or more required parametars."

Build prodje bez gresaka, i kada unesem vrednost u textBox koja postoji u bazi izbaci gresku, gore navedenu.



 
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#26.10.2007. u 22:20 - pre 200 meseci
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";
            OleDbCommand command = new OleDbCommand(strKomande);
            
            OleDbDataAdapter daBaza = new OleDbDataAdapter(strKomande,strKonekcije);

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

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


Probaj ovako.
RTFM
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
77.46.155.*



+171 Profil

icon Re: Parametarski upit i C#27.10.2007. u 13:06 - pre 200 meseci
Ukoliko nastavis da radis sa access-om, onda "No value given for one or more required parametars." greska ce ti se urezati u memoriju i naucices da ona oznacava u vecini slucajeva neispravno ime kolone koje navodis u select, where, order by, group by kaluzuli.
 
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#27.10.2007. u 14:25 - pre 200 meseci
Citat:
batasson: @DaliborP
Bazu sam uradio kako treba, a i aplikaciju u C# jedino sto mi je ostalo je da resim te upite u C# (nije mi problem SQL, vec sintaksa koja se koristi u C#, jer se malo razlikuje). Najsrecniji bi bio kada bi sve znao i nemao nikakvih porblema u izradi aplikacije, ali nije tako.

Pa zasto li si uzeo onda Access bazu? :) Sa SQL bazom imao bih manje muka u startu :) A i na kraju diplomskog bi naucio nesto korisno ;)
Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
 
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 14:42 - pre 200 meseci
Probao sam i da zamenim kod, da stavim @sifra_injekcije, ali opet nece i opet kaze da nije uneta vrednost za parametar.

Debug-ovao sam projekat i kada upisem vrednost u textBox i kliknem na dugme, otvori se prozorcic OleDbException sa istom greskom da nije dat value za parametar, i oboji liniju koda daBaza.Fill(dsBaza,"injekcije") u zuto.

Proverio sam, sve kolone su ispravno napisane u query, i vrednost koju unosim u textBox postoji u bazi.

Da li ima veze sto mi je sifra_injekcije u bazi Primary Key???

 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
77.46.155.*



+171 Profil

icon Re: Parametarski upit i C#27.10.2007. u 15:18 - pre 200 meseci
Iz iskustva sa accesom ti mogu reci da se u 90% slucajeva ta greska javlja kada upises pogresno ime neke kolone/polja. Cak sta vise, i ne znam sta je sa onih 10%, nisam siguran da oznacava nesto drugo van ovog opisanog konteksta. Sigurno negde gresis u povezivanju, da nisi slucajno referencirao drugi mdb, i ovo se desava sa accesom kada radis, kopiras sa jedne na drugu lokaciju fajl i tako dobijes duplikate a connection string uvek isti. Sto lepo ne okacis bazu a ne ovako da svi pogadjamo.
 
Odgovor na temu

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

Strane: 1 2

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

Postavi temu Odgovori

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