19. maj 2007 - 09:48Der er
12 kommentarer og 1 løsning
Lave en sql sætning ud fra en listbox
På min webside har jeg en listbox, hvor man kan vælge en hel masse ting og ud fra de ting man har valgt, skal jeg have lavet en sql sætning, som går ind i databasen og søger efter de ting, som man har valgt i listboxen: SELECT tabel.id FROM tabel WHERE tabel.listbox = true
du skal lave noget med SELECT tabel.id FROM tabel WHERE tabel.id in (enkommaseperaret liste.) Din kommasepareret liste skal indeholde selectedvalues fra liste boxen.
fn_split er en funktion som returnerer en tabel: CREATE FUNCTION dbo.fn_Split (@sText varchar(8000), @sDelim varchar(20) = ' ') RETURNS @retArray TABLE (idx smallint Primary Key, value varchar(8000)) AS BEGIN DECLARE @idx smallint, @value varchar(8000), @bcontinue bit, @iStrike smallint, @iDelimlength tinyint IF @sDelim = 'Space' BEGIN SET @sDelim = ' ' END SET @idx = 1 SET @sText = LTrim(RTrim(@sText)) SET @iDelimlength = DATALENGTH(@sDelim) SET @bcontinue = 1 IF Not ((@iDelimlength = 0) or (@sDelim = 'Empty')) BEGIN WHILE @bcontinue = 1 BEGIN IF CHARINDEX(@sDelim, @sText)>0 BEGIN SET @value = SUBSTRING(@sText,1, CHARINDEX(@sDelim,@sText)-1) BEGIN if(RTRIM(@value)<>'') INSERT @retArray (idx, value) VALUES (@idx, @value) END SET @iStrike = DATALENGTH(@value) + @iDelimlength SET @idx = @idx + 1 SET @sText = LTrim(Right(@sText,DATALENGTH(@sText) - @iStrike)) END ELSE BEGIN SET @value = @sText BEGIN if(RTRIM(@value)<>'') INSERT @retArray (idx, value) VALUES (@idx, @value) END SET @bcontinue = 0 END END END ELSE BEGIN WHILE @bcontinue=1 BEGIN IF DATALENGTH(@sText)>1 BEGIN SET @value = SUBSTRING(@sText,1,1) BEGIN if(RTRIM(@value)<>'') INSERT @retArray (idx, value) VALUES (@idx, @value) END SET @idx = @idx+1 SET @sText = SUBSTRING(@sText,2,DATALENGTH(@sText)-1) END ELSE BEGIN if(RTRIM(@sText)<>'') INSERT @retArray (idx, value) VALUES (@idx, @sText) SET @bcontinue = 0 END END END RETURN END
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.