Avatar billede brian-johansen Nybegynder
17. maj 2005 - 12:48 Der er 19 kommentarer og
1 løsning

SQL "AND" sætning

Hej,
Jeg ved at lave en kalenderen der, men jeg har fået dette problem.
I den følgende sætning vil jeg gerne have et AND med ind sådan at jeg får begge mine krav med opfyldt i min WHERE sætning
Hvad går jeg forkert.

myCmd = new OleDbDataAdapter ("Select * from events where dato=#" + date + "#" AND  bruger = " + bruger + "" , myConn);

mvh Brian
Avatar billede busschou Praktikant
17. maj 2005 - 12:50 #1
myCmd = new OleDbDataAdapter ("Select * from events where dato=#" + date + "# AND  bruger = " + bruger, myConn);
Avatar billede busschou Praktikant
17. maj 2005 - 12:57 #2
Jeg er ikke haj til asp.net
Men det ligner at du afsluttede din streng for tidligt ved "#" så AND ikke kommer med i strengen
Endvidere vil jeg mene at det sidste  + "" efter bruger er overflødigt da det jo blot er en tom streng :o)
Avatar billede busschou Praktikant
17. maj 2005 - 12:58 #3
afhængig af din database type kan det være du skal have ' omkring tekst ligesom du har # omkring datoer.. altså
myCmd = new OleDbDataAdapter ("SELECT * FROM events WHERE dato=#" + date + "# AND  bruger = '" + bruger + "'", myConn);
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 13:03 #4
Det virker ikke helt jeg får jeg en fejl tilbage der hedder No value given for one or more required parameters.
Avatar billede busschou Praktikant
17. maj 2005 - 13:06 #5
prøv udskrive din sql (kender ikke .net syntaksen, kun asp syntaksen)
--
sql = SELECT * FROM events WHERE dato=#" + date + "# AND  bruger = '" + bruger + "'"
response.write sql
myCmd = new OleDbDataAdapter (sql, myConn);
---
Det kunne tyde på en af dine variable ikke har en værdi måske
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 13:21 #6
så skriver den:
SELECT * FROM events WHERE dato=#05-05-2005# AND bruger = 'System.Web.UI.WebControls.LoginName'
Avatar billede busschou Praktikant
17. maj 2005 - 13:22 #7
ok afhængig af hvad 'System.Web.UI.WebControls.LoginName' er så giver jeg pas
vil mene at bruger skulle være fx "hans" ..altså et navn og ikke endnu en reference?
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 13:29 #8
ja men det tror jeg også det er for jeg længere oppe i koden skriver jeg:
string bruger = LoginName1.ToString();

Men er det fordi den ikke bare tager som en alm. string men en ref. ?

mvh
Avatar billede busschou Praktikant
17. maj 2005 - 13:33 #9
Jeg ved ikke hvordan asp.net fungerer desværre :o(
Men der er ingen tvivl om at i sql koden vil
bruger = 'System.Web.UI.WebControls.LoginName'
blive opfattet som om den skal finde en bruger med et meget underligt navn ;o)
Avatar billede busschou Praktikant
17. maj 2005 - 13:38 #10
Er det fordi det er sådan noget object orienteret halløjsovs hvor du kun laver en reference
Kan det tænkes du skal erklære stregnen først for at den ikke bliver en pegepind
String bruger = new String()
bruger = LoginName1.ToString();
--
kun en tanke
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 13:46 #11
Det er den nu ikke så glad for... Desvære
Avatar billede busschou Praktikant
17. maj 2005 - 13:50 #12
ok bare for nysgerrighedsskyld så kunne du jo prøve at indsætte et bruger navn du ved eksisterer , bare for at se om der er andet galt i selve sql erklæringen eller om det kun er det
Altså fx
sql = SELECT * FROM events WHERE dato=#" + date + "# AND  bruger = 'IB HANSEN'"
response.write sql
myCmd = new OleDbDataAdapter (sql, myConn);
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 13:54 #13
Det virker fint. Jeg har et bruger navn der hedder brian, og når jeg skriver jeg kun vil se hans aftaler, så virker det så det må være den bruger string der ikke fungere optimalt.

mvh
Avatar billede busschou Praktikant
17. maj 2005 - 13:59 #14
ok prøv sådan her
Dim bruger as String
bruger = LoginName1.ToString();
og se om det gør tricket
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 14:00 #15
Men når jeg laver tilbage for jeg ikke en fejl men bare at vide at personen ingen aftaler har den dag.
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 14:00 #16
øh... kan du skrive det i C# jeg forstår ikke helt det andet
Avatar billede busschou Praktikant
17. maj 2005 - 14:07 #17
njaa fandt det blot på en google søgning... men ja det er vb.net og ikke c#
Jeg vil stadig tro det er fordi den skal erklæres først
I VB gør man det med
Dim bruger as String
I C# ville jeg havde troedet man gjorde det som
String bruger = new String();
Evt måske som
String bruger = new String("test");
eller
String bruger = "test";
og så derefter
bruger = LoginName1.ToString();
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 14:30 #18
Det virker heller ikke, jeg tror lige lader det ligge lidt, også vender jeg lige tilbage til det.

Mange tak for hjælpen, smider du lige et svar?
Avatar billede busschou Praktikant
17. maj 2005 - 14:32 #19
ok det gør jeg da gerne... håber det lykkedes for dig
Avatar billede brian-johansen Nybegynder
17. maj 2005 - 14:35 #20
He He tak
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