webForumDet fria alternativet

Hoppa över toma records

ASP

6 svar · 309 visningar · startad av monAmour

Medlem sedan dec. 2002258 inlägg
Frågan#1

Hej, blir galen på den här konstiga grejjen.
Loopar svar från en undersökning ur en access-databas, och ibland är det så att ett svar är helt tomt vilket gör att jag inte vill visa detta.

Har helt enkelt försökt göra på det här sättet:

			If Trim(rs(dbSelect)) <> "" Then
		%>

		<div class="post">
			<div class="pLongAnsw">
				<%=rs(dbSelect)%>
			</div>
		</div>
		<br />
		<hr />
		<br />
		
		<%
			End If

Men då skrivs ingenting ut alls, eller html koden skrivs ut..
Alltså <div.... osv> Allt i IF satsen förut själva fråge svaret <%=rs(dbSelect)%> WHY??
Tar jag bort IF-satsen fungerar det fint..

Medlem sedan juni 200032 967 inlägg
#2

Det är skillnad på null och tom sträng. dock, om du lägger till en tom sträng till ett nullvärde kan du jämföra det med ett strängvärde.

If Trim("" & rs(dbSelect)) <> "" Then
Medlem sedan dec. 2002258 inlägg
#3

Sant!
Men det verkar inte fungera ändå..
http://www.bjorkefall.net/publiq/report2.asp?q=1

Medlem sedan juni 200032 967 inlägg
#4

Vad är fältet dbSelect för datatyp? Om det är PM bör du lägga det sist i din SELECT-fråga, och skapa en variabel som du använder dig av på asp-sidan, istället för att referera till recordsetet.

mvh

Medlem sedan dec. 2002258 inlägg
#5

Det är ett PM och jag hämtar enbart 1 fält i min Select sats.

		<%
			'Query db file
			Dim q
			Dim dbSelect
			q = Request.Querystring("q")
			If q = "" Then
				q = "1"
			End If
			
			Select Case q
				
				Case "1"
					Set rs = conObj.Execute("Select publiq1 From reportTbl")
					dbSelect = "publiq1"

				Case "2" 
					Set rs = conObj.Execute("Select publiq2 From reportTbl")
					dbSelect = "publiq2"

				Case "3" 
					Set rs = conObj.Execute("Select publiq3 From reportTbl")
					dbSelect = "publiq3"

				Case "4" 
					Set rs = conObj.Execute("Select publiq4 From reportTbl")
					dbSelect = "publiq4"

				Case "5" 
					Set rs = conObj.Execute("Select publiq5 From reportTbl")
					dbSelect = "publiq5"

				Case "6"
					Set rs = conObj.Execute("Select publiq6 From reportTbl")
					dbSelect = "publiq6"

			End Select

			Do While Not rs.EOF
			
			If Trim("" & rs(dbSelect)) <> "" Then
		%>
Medlem sedan dec. 2002258 inlägg
#6

Fick det att fungera nu genom att sätta en variabel som du sa!
Tack.

lösning:

			Do While Not rs.EOF
			Dim record
			record = Trim("" & rs(dbSelect))

			
			If record <> "" Then
		%>

		<div class="post">
			<div class="pLongAnsw">
				<%=record%>
			</div>
		</div>
		<br />
		<hr />
		<br />
		
		<%
			End If

		rs.MoveNext
		Loop
		%>
Medlem sedan apr. 200333 inlägg
#7

Om du nu bara tar ett fält från databasen varför lägger du inte bara till " WHERE %fält% <> NULL " i din SQL-sats då?

/MAge

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)