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?
Annonceindlæg fra Infor
2c
Nybegynder
24. september 2008 - 09:48
#1
SELECT * FROM Brugere WHERE (Navn LIKE '%?%') Måske?
24. september 2008 - 09:53
#2
Nej, desværre så finder den slet ingenting.
24. september 2008 - 09:55
#3
praecis som i spoergsmaalet du angiver LIKE paramnavn og saa giver du paramnavn en vaerdi "%foobar%"
24. september 2008 - 09:55
#4
parameters er altid hele vaerdier - man kan ikke indsaette parametere midt i en vaerdi
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" />
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.
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.
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å?
29. september 2008 - 14:07
#9
Måske ligge strengene sammen direkte på database serveren? SELECT * FROM Brugere WHERE Navn LIKE '%'+?+'%')
29. september 2008 - 14:08
#10
der var et parantestegn for meget (eller for lidt) SELECT * FROM Brugere WHERE Navn LIKE '%'+?+'%'
Takker for hjælpen, bliver nødt til lukke her. Skriv hvis I vil have point, så åbner jeg et nyt spørgsmål..
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.