WN

WN (https://www.wn.se/forum/index.php)
-   Off Topic (https://www.wn.se/forum/forumdisplay.php?f=7)
-   -   Söka i databas, hjälp! (https://www.wn.se/forum/showthread.php?t=30968)

digi 2008-08-06 10:54

Tjo!
Antar att jag får lägga detta under Off Topic eftersom det inte har så mkt med webbutveckling att göra :)

Sitter på jobbet och vill skapa ett litet VB-program där användaren matar in en sträng (textbox) och anger två datum (start- och slutdatum).
Det programmet sen ska göra är att söka poster i en databas som matchar denna sträng inom angiven tidsperiod.

Har försökt att göra detta som ett webbscript men det fick timeout då det handlar om VÄLDIGT stora tabeller. Dessutom är ett program att föredra då servern ligger internt och jag har ingen åtkomst till den lokala webbservern, med andra ord måste varje användare sätta upp en egen lokal server för att få webbscriptet att funka.

Tips mottages varmt!
Har googlat i 2 dygn snart utan resultat. Kan tillägga att jag aldrig har jobbat med visual studio och har ganska kass koll på VB över lag men jag vill ge det ett försök. Har mest arbetat med VBscript tidigare samt gjort enklare program i VB 6.0, aldrig med databaskoppling.

Nån som har länk till tutorial eller kan peka mig i rätt riktning?

Tack på förhand! :)
Pelle

edit: än en gång vill jag påpeka att jag är en riktig nybörjare på detta område så försök hålla förklaringar/tips på en nybörjarnivå :) och ja, jag borde plöja igenom flertalet kurser och lära mig grunderna, men om jag får ta en kik på något liknande tror jag att jag kan lista ut resten :)

StefanBergfeldt 2008-08-06 10:58

Får du timeout så har du gjort fel.
Är textsträngen en exakt söksträng, eller har du någon form av fulltext-sök?

Datumen lagras som datum i databasen hoppas jag, och alla tre fält är korrekt indexerade?

Då ska det INTE bli timeout.

Annars är principen för att göra skrivbordsprogram samma som för webbprogram. Dra dit dina kontroller, dubbelklicka på knappen och skriv koden.

digi 2008-08-06 11:02

Citat:

Originally posted by StefanBergfeldt@Aug 6 2008, 10:58
Får du timeout så har du gjort fel.
Är textsträngen en exakt söksträng, eller har du någon form av fulltext-sök?
Datumen lagras som datum i databasen hoppas jag, och alla tre fält är korrekt indexerade?
Då ska det INTE bli timeout.
Annars är principen för att göra skrivbordsprogram samma som för webbprogram. Dra dit dina kontroller, dubbelklicka på knappen och skriv koden.

För att förtydliga lite: vi kör i vanliga fall detta i eclipse med sql-plugin och sökningarna kan ta upp mot 10min. Vi snackar om väldigt stora mängder data :)

Skrivbordsprogram är det jag vill göra här, det blir smidigast för de som ska använda det. Kontrollerna har jag lagt dit, det är bara koden som återstår, det är där jag har kört fast lite :)

Ara 2008-08-06 11:19

Hur ser sökningen ut?

digi 2008-08-06 11:23

SQL-queryn är väldigt enkel, men jag vet inte hur jag kör den och returnerar värdet till mitt program :)

Citat:

SELECT field1, field2 FROM table WHERE field3 LIKE '123456789%' AND "Start Date" BETWEEN '01-JUL-2008' AND '31-JUL-2008'
Det är 12345679 som anges i textrutan och datumen hämtas från två andra kontroller.

digi 2008-08-06 11:35

Bifogar en bild på hur det kommer se ut, kanske blir lättare att förstå mitt svamel med lite visualisering :)

http://digitalunit.se/projects/app.jpg

StefanBergfeldt 2008-08-06 12:30

Släng in en datalist eller datagrid eller nåt där du visar resultatet.

Har du någon anslutning till databasen i koden, eller ska du ha hjälp med hela den biten?

digi 2008-08-06 12:38

Citat:

Originally posted by StefanBergfeldt@Aug 6 2008, 12:30
Släng in en datalist eller datagrid eller nåt där du visar resultatet.
Har du någon anslutning till databasen i koden, eller ska du ha hjälp med hela den biten?

Tack för ditt svar Stefan!
Jag har fått upp nått slags DataSet till de tabeller jag vill söka i, tänkte dock endast söka i en tabell till att börja med för att testa detta. Har plöjt igenom massa video-tutorials ang LINQ utan att bli klokare. Det jag vill göra är alltså att koppla upp mot "min" MS SQL 2005 db, köra en query och visa resultatet i en liten ruta (där det står "result")

StefanBergfeldt 2008-08-06 13:07

Denna klass använder jag för min databaskommunikation.
http://www.aspsidan.se/code/default.asp?c=23495

Sedan anropar jag den på följande vis:
http://www.aspsidan.se/code/default.asp?c=23496

Därefter behöver du bara binda ihop din DataList med MittResultat
DataList1.DataSource = MinKlass.MittResultat();
DataList1.DataBind();

Såg förresten att du använder VB, men det ska väl gå att översätta?

digi 2008-08-06 13:24

Tack för att du försöker hjälpa mig Stefan, fattar dock inte mkt av din kod =/
Tror jag får försöka vidare, tycker det är konstigt att jag inte hittar nån info om detta. Är ju inte världens svåraste program jag försöker göra... kanske bara googlar på fel termer :)


Alla tider är GMT +2. Klockan är nu 17:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson