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

Upit koristenjem OleDbAdaptera

[es] :: .NET :: Upit koristenjem OleDbAdaptera

[ Pregleda: 2003 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dobar_Krle
Krle Dobar

Član broj: 153572
Poruke: 7
*.PPPoE-6325.sa.bih.net.ba.



Profil

icon Upit koristenjem OleDbAdaptera14.08.2007. u 19:44 - pre 203 meseci
Amater sam, i izvinjavam se ako koristim pogresne izraze.
Uradio sam putem OleDBdataAdaptera sledeci upit:


CODE:
SELECT Bar_code, Datum_isteka, Datum_proizvodnje, ID_Artikla, Jedinica_mere, Naziv_artikla
FROM Artikli
WHERE (Jedinica_mere LIKE 'kom')


A zelio bi slijedeci upit, ako moze, jer ja ne znam kako:

CODE:
SELECT Bar_code, Datum_isteka, Datum_proizvodnje, ID_Artikla, Jedinica_mere, Naziv_artikla
FROM Artikli
WHERE Datum_isteka < Date()

U ovom slucaju bi Date() trebao da prestavlja trenutni datum, ali kad ovako uradim, javlja se greska da ne valja upit.
Da li se ovako nesta moze izvesti?

Napomena: Datum_isteka je u date&time formatu. Koristim Access bazu.
krleoni
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
*.PPPoE-7263.sa.bih.net.ba.

ICQ: 238530669


Profil

icon Re: Upit koristenjem OleDbAdaptera14.08.2007. u 22:23 - pre 203 meseci
ne znam je li to odgovor na tvoje pitanje ali,
kod rada sa Access bazom kada kreiras upite
koji sadrze datum tada kao 'ogranicavac' datuma koristis tarabu '#'
npr.

Code:

WHERE #datum1# > #datum2#
\

i jos nesto, ovaj tvoje prvi upit sa LIKE je nesto sumnjiv (fali upitnik ili procenat), provjeri malo ;)
Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

prog
Bihac

Član broj: 106882
Poruke: 77
*.806591-86.bih.net.ba.



Profil

icon Re: Upit koristenjem OleDbAdaptera15.08.2007. u 08:40 - pre 203 meseci
ako prosljedjivas upit dao engine-u (engine kojim access radi) upit je u redu nema nikakve greske. greska bi jedino bila ako nisi neku kolonu dobro napisao.
medjitim pitanje je vrlo nejasno, i ja sad nagadjam:
- da li koristis dataset u koji trpas podatke iz tog upita? Ako je to u pitanju onda moras voditi racuna da upit ima primarni ključ, jer kad pozivas fill metodu
dataadaptera on ti javlja gresku.

kad bi taj isti upit prosljedjivao MS SQL-u, tada upit nebi bio validan jer SQL nepoznaje funkciju Date()

Hajde malo bolje specificiraj pitanje, ako nisam pogodio u cemu je trik
 
Odgovor na temu

Dobar_Krle
Krle Dobar

Član broj: 153572
Poruke: 7
89.146.183.*



Profil

icon Re: Upit koristenjem OleDbAdaptera15.08.2007. u 15:34 - pre 203 meseci
Imam tabelu u kojoj se upisuju datumi proizvodnje i isteka roka proizvodu. Zelio bi napraviti upit gdje ce mi
izdvojiti artikle kojima nije istekao rok.
U odnosu na moje prvo postavljeno pitanje, ovaj put sam pokusao na drugi nacin, gdje koristim sledeci upit:

private void button1_Click(object sender, System.EventArgs e)
{
dataSet1.Clear();

string Constr=@"Provider=Microsoft.Jet.OLEDB.4.0;"+
@"Data Source=c:\KontrolaArtikala\bin\Debug\kontrola.mdb";

string SQL="SELECT * FROM Artikli WHERE Datum_isteka < System.DateTime.Now ";

OleDbConnection oleDbConnection1=new OleDbConnection(Constr);
OleDbDataAdapter oleDbDataAdapter1=new OleDbDataAdapter(SQL,oleDbConnection1);
oleDbCb=new OleDbCommandBuilder(oleDbDataAdapter1);
oleDbDataAdapter1.Fill(dataSet1,"Artikli");
dataGrid1.SetDataBinding(dataSet1,"Artikli");
}

I na predzadnjoj liniji koda se pojavi: Breakpoint oleDbDataAdapter1.Fill(dataSet1,"Artikli"); (An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll)

Koristim Access bazu gdje je format datuma date&time, ali sam citao na forumu da se treba koristiti parametrized query
kako bi se mogao upit sa datumima izvrsiti, ali ja uopste ne znam kako bi to izveo, iako sam citao na forumu neka objasnjena, ali za mene nisu bila dovoljna.
Znam da se u dataset-u prikaze datum kao string kad inportujem iz access-a.

Ovaj gore upit funkcionise kada npr. uradim ovo:
string SQL="SELECT * FROM Artikli WHERE Jedinica_mere ='KOM' ";
Tako da ostaje sumnja da je do formata datuma.



krleoni
 
Odgovor na temu

prog
Bihac

Član broj: 106882
Poruke: 77
89.146.173.*



Profil

icon Re: Upit koristenjem OleDbAdaptera15.08.2007. u 20:47 - pre 203 meseci
Nevalja ti:
Code:

string SQL="SELECT * FROM Artikli WHERE Datum_isteka < System.DateTime.Now ";


ovo moras napisati ovako:
string SQL="SELECT * FROM Artikli WHERE Datum_isteka < #"+ System.DateTime.Now.ToString()+"#"; odnosno formatiraj datum u obliku #yyy/mm/dd#
 
Odgovor na temu

Dobar_Krle
Krle Dobar

Član broj: 153572
Poruke: 7
89.146.189.*



Profil

icon Re: Upit koristenjem OleDbAdaptera16.08.2007. u 17:32 - pre 203 meseci
Uradio sam na ovakav nacin:
string SQL="SELECT * FROM Artikli WHERE Datum_isteka >
#"+System.DateTime.Now.ToString("dd-mm-yyyy HH:mm:ss")+"# ";

i radilo je na kratko, zelim reci da se nakon svakog izlaska iz forme i ponovnog pokretanja upita, broj artikala smanjivao, zapravo su nestajali, ne znam zasto, da opet nesta nisam izostavio.
Sigurno jos nesta dobro nisam uradio, ali sam pokusavao na razne nacine:

koristeci bez formata datuma :
#"+System.DateTime.Now.ToString()+"#

onda izmenom datuma:

#"+System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss")+"#
yyyy/mm/dd

i sl., ali ne ide.
Kao sto sam rekao, ovaj prvi upit mi je radio nekoliko puta dok sam pokretao, ali posle ne, s time sa su se artikli povremeno gubili.
Ne znam u cemu je sada problem.

krleoni
 
Odgovor na temu

mirobor
Nederland

Član broj: 15124
Poruke: 43
*.cable.quicknet.nl.



Profil

icon Re: Upit koristenjem OleDbAdaptera21.08.2007. u 12:29 - pre 203 meseci
Za access upotrebljavaj upitnik , pa adapteru dodaj parametar, tako je string uvijek dobro formatiran!

string SQL="SELECT * FROM Artikli WHERE Datum_isteka < ?";

OleDbConnection oleDbConnection1=new OleDbConnection(Constr);
OleDbDataAdapter oleDbDataAdapter1=new OleDbDataAdapter(SQL,oleDbConnection1);

oleDbDataAdapter1.SelectCommand.Parameters.Add("Datum_isteka", DateTime.Now());


itd....

 
Odgovor na temu

Dobar_Krle
Krle Dobar

Član broj: 153572
Poruke: 7
89.146.182.*



Profil

icon Re: Upit koristenjem OleDbAdaptera21.08.2007. u 18:03 - pre 203 meseci
Zelim se zahvaliti erkan, prog i mirobor koji su mi pomogli da resim ovaj problem.

U medjuvremenu sam nesta uradio na ovaj nacin:

string SQL="SELECT * FROM Artikli WHERE Datum_isteka > #"+textBox1.Text+"# "

ali u textbox-u je format mm/dd/yyyy, znam da se i to moze ispraviti promenom formata.

Jos jednom hvala.
krleoni
 
Odgovor na temu

mirobor
Nederland

Član broj: 15124
Poruke: 43
*.cable.quicknet.nl.



Profil

icon Re: Upit koristenjem OleDbAdaptera21.08.2007. u 20:47 - pre 203 meseci
Znam da mnogi pocetnici zaziru od reci "parametar", ali to je tako jednostavno samo jedan redak ekstra, prepravi na ovaj nacin i svi problemi sa formatiranjem datuma su rjeseni.

string SQL="SELECT * FROM Artikli WHERE Datum_isteka < ?";

OleDbConnection oleDbConnection1=new OleDbConnection(Constr);
OleDbDataAdapter oleDbDataAdapter1=new OleDbDataAdapter(SQL,oleDbConnection1);

oleDbDataAdapter1.SelectCommand.Parameters.Add("Datum_isteka", DateTime.Parse(textBox1.Text));

oleDbDataAdapter1.Fill(tvojDataSet, "DataSetTabela");

.......

 
Odgovor na temu

[es] :: .NET :: Upit koristenjem OleDbAdaptera

[ Pregleda: 2003 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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