Avatar billede suppenudel Nybegynder
24. september 2008 - 09:45 Der er 10 kommentarer og
1 løsning

Brug af LIKE ved parametre

Hvis jeg har dennne sætning i et xsd-dataset:

SELECT * FROM Brugere WHERE (Navn LIKE ?)

?-parameteren bliver så hentet fra en tekstbox.
Her vil jeg så gerne sætte wildcard på med %-tegn.

Hvordan ser syntaxen ud når det er i et dataset
med parametre?
Avatar billede 2c Nybegynder
24. september 2008 - 09:48 #1
SELECT * FROM Brugere WHERE (Navn LIKE '%?%')

Måske?
Avatar billede suppenudel Nybegynder
24. september 2008 - 09:53 #2
Nej, desværre så finder den slet ingenting.
Avatar billede arne_v Ekspert
24. september 2008 - 09:55 #3
praecis som i spoergsmaalet

du angiver LIKE paramnavn

og saa giver du paramnavn en vaerdi "%foobar%"
Avatar billede arne_v Ekspert
24. september 2008 - 09:55 #4
parameters er altid hele vaerdier - man kan ikke indsaette parametere midt i en vaerdi
Avatar billede suppenudel Nybegynder
24. september 2008 - 10:31 #5
Okay, på den måde.

Jeg angiver parameteren Navn således:

<Parameter AllowDbNull="true" AutogeneratedName="Param1" ColumnName="Navn" DataSourceName="Annoncorer" DataTypeServer="DbType.StringFixedLength(50)" DbType="String" Direction="Input" ParameterName="Navn" Precision="0" ProviderType="WChar" Scale="0" Size="50" SourceColumn="Navn" SourceColumnNullMapping="false" SourceVersion="Current" />
Avatar billede suppenudel Nybegynder
24. september 2008 - 10:33 #6
Hvilken attribut skal jeg så lægge %-tegn om?

Hvis jeg laver ParameterName="%Navn%" kommer den med en fejl at den ikke kan finde parameteren Navn i selve sætningen.
Avatar billede arne_v Ekspert
24. september 2008 - 10:39 #7
Jeg antager at den ulaeselige smoere henter vaerdien et eller andet sted fra.

% tegn skal saa vaere det sted.

Hvis du selv vil tilfoeje de % tegn, saa bliver du nok noedt til at skrive noget kode.
Avatar billede suppenudel Nybegynder
24. september 2008 - 10:44 #8
Hehe..

Jo, som sagt ligger smøren i et eksternt dataset (.xsd-fil)
Værdien hentes fra en textbox. Et ObjectDataSource anvender
datasettet og tager textboxens værdi ind som parameter.

Skal det angives et sted i ObjectDataSource så?
Avatar billede mikalj Nybegynder
29. september 2008 - 14:07 #9
Måske ligge strengene sammen direkte på database serveren?

SELECT * FROM Brugere WHERE Navn LIKE '%'+?+'%')
Avatar billede mikalj Nybegynder
29. september 2008 - 14:08 #10
der var et parantestegn for meget (eller for lidt)
SELECT * FROM Brugere WHERE Navn LIKE '%'+?+'%'
Avatar billede suppenudel Nybegynder
28. maj 2011 - 13:32 #11
Takker for hjælpen, bliver nødt til lukke her. Skriv hvis I vil have point, så åbner jeg et nyt spørgsmål..
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



IT-JOB

Nitor Energy A/S

IT Infrastructure Specialist

Sparekassen Danmark

Systemudvikler

Dansk Sygeplejeråd

IT-teknisk medarbejder

ALD Automotive Danmark A/S

Regional IT-administrator