16. februar 2007 - 22:14Der er
18 kommentarer og 1 løsning
Hjæp til SQL LIKE
Hej alle sammen.
Hvorfor virker det her ikke?
SqlCommand kategorier = new SqlCommand("SELECT * FROM Kategori WHERE Navn LIKE @katNavn + '%'", con); SqlParameter katNavn = new SqlParameter(); katNavn = kategorier.Parameters.Add("@katNavn", SqlDbType.Char); katNavn.Direction = ParameterDirection.Input; katNavn.Value = hardware; kategorier.Connection.Open(); SqlDataReader katRead = kategorier.ExecuteReader();
Jeg får følgende fejl:
System.InvalidOperationException: Invalid attempt to read when no data is present.
Problemet er bare, at jeg ved, at der er data til stede i databasen. Og jeg er ret overbevist om, at det er noget med min SQL sætning omkring LIKE og %-tegnet.
Pointen med SQL-sætningen er, at jeg har noget string input, som f.eks. kan være "Bund" og "Adaptere" og "Mus".
Sådan som jeg ser problemet, er det, at den ikke kan finde f.eks. "Bundkort" som ligger i databasen ved hjælp af %-tegnet, som da ellers burde være muligt, og det er det også via mit SQL-administrationsmodul.
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Nu får jeg i det mindste ikke nogen fejlmeddelse, men det ser stadig ikke ud til, at den finder noget, for jeg har nedenunder en if-sætning, som lidt forenklet ser sådan her ud:
if(katRead.HasRows) { Response.Write("Der er resultat af søgningen"); } else { Response.Write("Der er ikke resultat af søgningen"); }
Nu har dokumentation og Microsoft det jo ikke altid lige godt med hinanden ;) Man kan nemlig også læse den side du linker til som at HasRows ikke findes i .NET 1.0, men at den findes fra 1.1 og frem. Når du ikke får syntaksfejl på den, så virker den - tro på det ;))
okay... men tror jeg lader det jeg har skrevet stå... for min egen dårlige hukommelses skyld... :)
Synes godt om
Ny brugerNybegynder
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.