[ batasson @ 24.10.2007. 19:48 ] @
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!
[ MarkoBalkan @ 24.10.2007. 20:04 ] @
evo ti

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

ako spajas vise tablica umjesto = koristi like.

[ jablan @ 24.10.2007. 22:43 ] @
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))
[ batasson @ 25.10.2007. 13:15 ] @
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.
[ jablan @ 25.10.2007. 13:28 ] @
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
[ batasson @ 25.10.2007. 21:53 ] @
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.
[ jablan @ 26.10.2007. 08:42 ] @
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...
[ DaliborP @ 26.10.2007. 08:49 ] @
@batasson , a koji je to fakultet ako nije tajna?
[ aleksandarpopov @ 26.10.2007. 11:54 ] @
@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);

[ batasson @ 26.10.2007. 12:14 ] @
@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.
[ jablan @ 26.10.2007. 12:31 ] @
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.
[ aleksandarpopov @ 26.10.2007. 13:08 ] @
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...
[ batasson @ 26.10.2007. 18:11 ] @
@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???
[ aleksandarpopov @ 26.10.2007. 20:10 ] @
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();
[ batasson @ 26.10.2007. 21:20 ] @
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.



[ aleksandarpopov @ 26.10.2007. 22:20 ] @
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.
[ negyxo @ 27.10.2007. 13:06 ] @
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.
[ Shevchenko @ 27.10.2007. 14:25 ] @
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 ;)
[ batasson @ 27.10.2007. 14:42 ] @
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???

[ negyxo @ 27.10.2007. 15:18 ] @
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.
[ aleksandarpopov @ 27.10.2007. 15:44 ] @
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 ...
[ batasson @ 27.10.2007. 16:44 ] @
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
[ batasson @ 27.10.2007. 21:46 ] @
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. :(
[ Shevchenko @ 28.10.2007. 02:43 ] @
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();
[ aleksandarpopov @ 28.10.2007. 09:25 ] @
Pogledaj klasu OleDbCommandBuilder, pomocu nje mozes sve DML SQL ove sam da izgenerises automatski na osnovu tvoje SELECT komande.
[ batasson @ 28.10.2007. 17:46 ] @
@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.
[ aleksandarpopov @ 28.10.2007. 18:19 ] @
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.
[ batasson @ 29.10.2007. 22:24 ] @
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.


[ batasson @ 30.10.2007. 12:51 ] @
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...
[ jablan @ 30.10.2007. 13:51 ] @
http://en.wikipedia.org/wiki/Exception_handling
[ batasson @ 31.10.2007. 19:05 ] @
Hvala....

Sredio sam kako treba i radi....
Ucim polako.... valjda ce biti nesto od mene
[ batasson @ 02.11.2007. 22:23 ] @
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?
[ aleksandarpopov @ 03.11.2007. 09:32 ] @
1.
Googlaj

2.
Code:
int a = (int)myReader.ExecuteScalar();
   txtbox.text = a.toString();
[ batasson @ 05.11.2007. 10:16 ] @
Ovo drugo sam resio. Hvala ti.
Ali problem je oko prvog pitanja jer nemogu nista da nadjem....
[ bunker @ 05.11.2007. 20:02 ] @
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.
[ batasson @ 05.11.2007. 21:39 ] @
Ne mogu da verujem....
Guglao jesam, ali ne znam kako mi je promaklo da vidim nazive kolona u zagradama...

Izvinjavam se svima...