Avatar billede Red0z Nybegynder
04. marts 2010 - 10:47 Der er 14 kommentarer og
1 løsning

Dato søgning i database.

Hey drenge!

Sidder og prøver at lave et søge funktion i en database.
Meningen er at man vælger 2 dato'er, og så finder den datoerne imellem de to værdier, og derefter tager den og sammenligner NR i LicNFO og NR i USRTable, og i sidste ende tilføjer den USRTable værdierne som har samme NR som dem der blev fundet i LicNFO table.

Her er noget kode så i kan se hvordan jeg har prøvet at opsætte det, det ville være super fedt at få lidt hjælp, der kommer ikke nogen fejl når jeg kører programmet, men der kommer heller ikke nogle værdier op. Jeg kan se at datoerne der er i LicNFO table, de er der. :)


        private void SrchBTN_Click(object sender, EventArgs e)
        {
            string DateType = "LicNFO.LicKEXP";
            DataSet DS = new DataSet();

            SqlConnection SQLConn = new SqlConnection(@"Data Source=DKCOMKIMLAR\SQLEXPRESS; Initial Catalog=LicenseManager; Integrated Security=true");

            MessageBox.Show("From: " + FromDate.Value.ToString() + "\nTo: " + ToDate.Value.ToString());
            SqlDataAdapter SQLCMDN = new SqlDataAdapter(@"SELECT LicNFO.NR, USRTable.NR, USRTable.CPR,USRTable.Name FROM USRTable, LicNFO WHERE USRTable.NR = LicNFO.NR AND '" +DateType+ "' BETWEEN '"+ FromDate.Value.ToString() +"' AND '"+ToDate.Value.ToString() +"'", SQLConn);
            SQLCMDN.Fill(DS, "SrchTabl");

            dataGridView1.DataSource = DS.Tables["SrchTabl"];
        }

Det er sikkert noget simpelt jeg har overset. :)

På forhånd mange tak . :)
Avatar billede Syska Mester
04. marts 2010 - 11:07 #1
Sql profiler ... så kan du se hvad der kommer over til din SQL Database. Kan du ikke bruge SQL Profiler, kan du tage din sql du genererer i din kode og smide den ind i SSMS og køre den der.

Brug paramters, kan ske at være en simpel ting som at dato bliver indsat forkert i din SQL.
Avatar billede Red0z Nybegynder
04. marts 2010 - 11:28 #2
Hvordan bruger jeg så SQL profilger ? Eller for den sags skyld SSMS ? :)
Avatar billede kalp Novice
04. marts 2010 - 11:33 #3
skriv hellere

string query = @"SELECT LicNFO.NR, USRTable.NR, USRTable.CPR,USRTable.Name FROM USRTable, LicNFO WHERE USRTable.NR = LicNFO.NR AND '" +DateType+ "' BETWEEN '"+ FromDate.Value.ToString() +"' AND '"+ToDate.Value.ToString() +"'";

MessageBox.Show(query);

SqlDataAdapter SQLCMDN = new SqlDataAdapter(query, SQLConn);


men ellers vil jeg give buzzz ret i at du bør benytte parameters til dine værdier.
Avatar billede Syska Mester
04. marts 2010 - 11:43 #5
Avatar billede Red0z Nybegynder
04. marts 2010 - 12:50 #6
Så parametrene skal gøre det simplere at kunne overskue, hvis jeg har forstået korrekt, men mht. koden, så virker det desværre stadig ikke, og kan virkelig ikke se hvad fejlen skulle ligge i . :/
Avatar billede Syska Mester
04. marts 2010 - 12:57 #7
Hvordan ser din SQL statement ud ? Når du printer den eller kører din kode i debug mode ... der må være en fejl ... måske dato der bliver konverteret forkert ...

Jeg er blevet for gammel til at overskue SQL hvor der ikke er brugt parameters.

Har du prøvet at lave din SQL i SSMS? og se at den returnere noget der ?

mvh
Avatar billede janus_007 Nybegynder
04. marts 2010 - 13:14 #8
"Jeg er blevet for gammel til at overskue SQL hvor der ikke er brugt parameters."

*LOL*
Avatar billede Syska Mester
04. marts 2010 - 13:55 #9
haha Janus_007 ... seriøst ... min hjerne går  helt i stå når jeg skal gennemskue dem her på eksperten ... :-)

Men jeg tror da også du giver mig ret.

mvh
Avatar billede Red0z Nybegynder
04. marts 2010 - 14:01 #10
Jeg forstår det godt, det kan være uoverskueligt.. Men ihvertfald, når jeg kører det i SSMS er det samme resultat, den kommer fra med tomme kolonner og ingen fejl . :S
Avatar billede Red0z Nybegynder
04. marts 2010 - 14:07 #11
Fejlen var helt min egen, jeg var dum nok til at skrive følgende.

... AND 'LicNFO.LicKEXP' BETWEEN ...

frem for

... AND LicNFO.LicKEXP BETWEEN ...

Skrev LicNFO.LicKEXP som en værdi from for en variabel.
Men mange tak for hjælpen drenge!
Avatar billede Syska Mester
04. marts 2010 - 14:17 #12
Så har du jo en SQL fejl ... som de så fandt lidt tid efter.

Glad for at kunne hjælpe.

mvh
Avatar billede Red0z Nybegynder
04. marts 2010 - 14:22 #13
Ja, faktisk sandt nok at det er en fejl. Men mit rookie hoved har sådan en ting med at der plejer at komme en fejl meddelse. Forresten, hvis du føler dig snydt for nogle point, kan det sagtens arrangeres ? Jeg var lidt for hurtig med bare at lukke sagen i glæde ;D og nu har du alligevel hjulpet den her noob en del gange. :P
Avatar billede Syska Mester
04. marts 2010 - 14:34 #14
Hej,

Jeg vil nok hellere vende den om ... hvis du føler du er blevet hjulpet, så kan du give point til dem som hjælper.

mvh
Avatar billede janus_007 Nybegynder
04. marts 2010 - 15:40 #15
Helt enig...

Jeg forstår slet ikke nogle gider skrive Sql, når man har Linq :)

(lige medmindre når man arbejder med spatial eller full text, de er desværre ikke understøttet af LinqToSql)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester