[ miki_ja @ 20.03.2006. 18:08 ] @
Da li je nekako moguće napisati promenjljivu u SQL naredbi, recimo ovako:

Code:
OleDbDataAdapter aparatAdapter = new OleDbDataAdapter("SELECT Broj FROM Aparati WHERE Lokal = 'Cacak I'", firstConnection);


Ovde mi je potrebno da je Lokal, odnosno Cacak I bude promenljiva, recimo text izabranog člana ComboBoxa.
Da li je ovo moguće, ili da pišem petlju za svaki string?
[ Fedya @ 20.03.2006. 18:49 ] @
Jeste.

Stavi
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT Broj FROM Aparati WHERE Lokal = '@local'"
cmd.Paramters.Add("@local", OvdeRacunasLocal)

i onda adapter povezes sa komandom i sve ostalo isto...
[ ntadic @ 21.03.2006. 10:31 ] @

Code:
OleDbDataAdapter aparatAdapter = new OleDbDataAdapter("SELECT Broj FROM Aparati WHERE Lokal = '" + promjenjiva + "'", firstConnection);
[ jablan @ 21.03.2006. 10:38 ] @
Uvek ovako kao što kaže Feđa, nikad ovako kao što kaže ntadic.

http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx
http://www.knowdotnet.com/articles/dynamicsqlparameters.html

I na još milion mesta na netu stoji zašto je loše da se SQL upiti konkateniraju sa promenljivama (keyword: "SQL Injection").
[ miki_ja @ 21.03.2006. 17:42 ] @
Nažalost, uspevam samo na ovaj drugi način!

@Fedya : Mislim da pogrešno povezujem komandu sa adapterom,
evo primera mog koda:

Code:

string sub = "Subotica";
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT InventarskiBroj FROM Aparati WHERE Lokal = @local";
cmd.Parameters.Add("@local", sub);

OleDbDataAdapter aparatAdapter = new OleDbDataAdapter(cmd.CommandText, firstConnection); /// nije ovako :) ?
DataSet thisDataSet = new DataSet();
aparatAdapter.Fill(thisDataSet, "Aparati");
 
[ jablan @ 22.03.2006. 08:18 ] @
Citat:
miki_ja:
Code:

OleDbDataAdapter aparatAdapter = new OleDbDataAdapter(cmd.CommandText, firstConnection); /// nije ovako :) ?

Da, nije tako. Na taj način praktično džabe si kreirao Command objekat jer posle koristiš samo SQL upit iz njega (parametre si bacio).

Koristi drugi konstruktor:

Code:
OleDbDataAdapter aparatAdapter = new OleDbDataAdapter(cmd);

Naravno, pre toga moraš da komandi postaviš Connection...

[Ovu poruku je menjao jablan dana 22.03.2006. u 09:19 GMT+1]