17. maj 2005 - 12:48Der 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);
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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)
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);
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
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?
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)
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
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);
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.
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();
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.