» »

C# nasvet

C# nasvet

gsh ::

Kako iz tabele v DataSetu najhitreje izpisem vse n-terke, ki se pojavijo vec kot m-krat in stevilo pojavljanj posamezne n-terke?

Torej: imam tabelo v kateri so shranjeni nakupi, npr.:

id item1 item2 item3 item4
---------------------------------
1 sok kola pivo kruh
2 kruh pivo casopis sok
3 kola cips kruh sadje
4 cips kruh sadje pivo
...
...

Algoritem mora najprej poiskati vse 1-terke, ki se pojavijo vec kot m-krat in njihovo stevnost (kruh:4...).
Nato iz ustreznih 1-terk naredi kandidate za 2-terke (pari artiklov, ki so kupljeni hkrati - v isti vrstici v bazi).
Potem pogleda katere od-teh 2-terk sploh obstajajo v tabeli in kolikokrat.
Nato sledijo 3-terke...in tako naprej do n.

Rezultat je torej izpis vseh n-terk in njihove stevnosti npr.:

1-terke
-------
kruh: 10
cips: 13
mleko: 9
sadje: 7
kola: 8

2-terke
-------
kruh cips: 3
kola cips: 5

3-terke
-------
kruh cips kola: 3

A se komu sanja, kako bi slo to v eni zanki, da ni treba za vsak n svoje metode pisat?

Tnx...

LP, GSh

ax3K ::

tako iz glave ne vem, ampak morda bi ti lahko razmislil o drugačnem designu podatkovne baze.

tvoja tabela:
id item1 item2 item3 item4
---------------------------------
1 sok kola pivo kruh
2 kruh pivo casopis sok
3 kola cips kruh sadje
4 cips kruh sadje pivo
...
...


verjetno ena vrstica predstavlja en recordset. Če bi bilo v prvem nakupu 5 živil, v drugem 20, v tretjem pa 300, potem bi vsi trije recordseti rabili prostor za 300 živil. torej 300*3=900 prostorčkov za 325 živil.

(če sem vse skupaj narobe razumel se opravičujem)


lp
AlienX

gsh ::

ne ne, vedno so max 4je nakupi, tako da baza je ze ok...

darkolord ::

Če imaš bazo v SQLu bi se morda bolj splačalo kar tam nardit kako 'Stored Procedure', ki bi ti vrnila tisto, kar si želiš...

zagy ::

DataSet je sestavljen iz DataTableCollection, DataTable pa ponuja metodo Select:

dataSet.Table[0].Select(....);

V to metodo lahko napišeš stavek podoben SQL Select stavku. Najbrž se da kaj takšnega spravit skupaj tudi kakšne bolj zahtevne stvari,
vsekakor pa nekaj takega kot:

DataRow[] rows = dataSet.Table[0].Select("item1 = sok");

Poglej dokumentacijo (pa tudi groups.google.com) za nadalnja navodila...

fr0sty ::

Jaz imam svoje podatke shranjene v Accessovi bazi, in do njih dostopam preko OleDbCommand. Glede na to, da v DataSet že dobim le tiste podatke ki jih želim, ti tukaj ne znam pomagati. Imaš pa tukaj link do MySql manuala, kjer imaš razloženo sintakso SQL ukazov....upam da kaj pomaga...

LP


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pametno nakupovanje (strani: 1 2 )

Oddelek: Loža
5412437 (10136) HappyPills
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317761 (8509) black ice
»

c# - mssql kombinacija / problem pri zapisu row-a v bazo

Oddelek: Programiranje
121559 (1368) darkolord
»

[C#] ne dodaja podatkov v bazo

Oddelek: Programiranje
91566 (1415) alesp56
»

Ojačevalec 250W

Oddelek: Elektrotehnika in elektronika
62177 (1945) migič

Več podobnih tem