Avatar billede Slettet bruger
20. maj 2004 - 20:45 Der er 24 kommentarer og
1 løsning

Bruge udskrift fra dataset i If then sætning

Hej

Jeg hetner fra en access db og binder det i et dataset. På siden vil jeg så gerne lave en If et element i datasettet er "true" så skal den skrive en sti ud, eller skal den bare ikke gøre noget. Men jeg kan ikke finde ud af hvordan jeg spørger om det element i datasettet er "true".

Her er lidt kode:

<ItemTemplate>
<br />                   
                     
        Opgave: <%# Container.DataItem("Title") %><br>
        Type: <%# Container.DataItem("Type") %><br>
        Ansvarlig: <%# Container.DataItem("Ansvarlig_FollowUp") <br>
<% If DataBinder.Eval(Container.DataItem,"afsluttet") = "True" Then
////Sti/////
End If %>
</ItemTemplate>

Håber der er en der kan hjælpe - på forhånd tak.
Avatar billede jakobg Nybegynder
21. maj 2004 - 11:34 #1
Hvis "afsluttet" er et ja/nej-felt, kan du gøre følgende:

<%# iif(Container.DataItem("afsluttet") = true, "den sti du vil udskrive", "tekst som bliver skrevet når afsluttet er false" ) %>
Avatar billede Slettet bruger
21. maj 2004 - 12:13 #2
Tak. Det virker.
Sender du venligst et svar?
Avatar billede Slettet bruger
21. maj 2004 - 15:22 #3
Et tillægsspørgsmål - hvis du ved det?
Kan man gøre noget lignende hvis "afsluttet" er et tekst felt, noget i retning af:
<%# iif(Container.DataItem("afsluttet") <> "", "den sti du vil udskrive", "tekst som bliver skrevet når afsluttet er false" ) %>

Jeg har prøvet det, man kan ikke få det til at virke?
Der er naturligvis point uanset :-)
Avatar billede jakobg Nybegynder
22. maj 2004 - 13:01 #4
Hmm, jeg forstår ikke at du ikke kunne få det til at virke med tekststrengen? Har du mellemrum mellem <>?
Avatar billede jakobg Nybegynder
22. maj 2004 - 13:03 #5
Måske virker det ikke hvis din tekststreng er NULL, og ikke bare tom (""). Prøv at rette din SELECT-statement, så du ikke får NULL ud...
Avatar billede Slettet bruger
22. maj 2004 - 20:23 #6
Hej Igen

Jeg har prøvet at ud skrifte tom "" med NULL, men det hjælper ikke. Hvordan skal mit select-statement se ud, hvis jeg ikke skal have NULL ud.
Nu ser det ud som følger:

Select * From For_detail Where ID =" & IDX, DbConn
Avatar billede jakobg Nybegynder
22. maj 2004 - 21:18 #7
I SQL Server kan du bruge ISNULL funktionen:
SELECT ISNULL(Kolonne, "") AS Kolonne ...
Jeg gætter på det samme virker i Access.
Avatar billede Slettet bruger
24. maj 2004 - 12:37 #8
Hej

Jeg er vist ikke helt med. Min SELECT ser lige nu ud som følger:
Select * From For_detail Where ID =" & IDX
Hvad skal den så ændres til?
Avatar billede jakobg Nybegynder
24. maj 2004 - 13:13 #9
Du skal erstatte * med de kolonnenavne du skal bruge på siden. Faktisk bør du ALTID skrive kolonnenavnene specifik, SELECT * er ikke pæn programmering... :)
Avatar billede Slettet bruger
24. maj 2004 - 13:20 #10
Det er godt at lære, så det vil jeg prøve. Men jeg er nu stadig i tvivl. Er det sådan her:
SELECT ISNULL(handling_1,"") As kolonne, ISNULL(handling_2,"")As kolonne FROM For_detail WHERE ID =" & IDX
Avatar billede jakobg Nybegynder
24. maj 2004 - 14:40 #11
Ikke helt: Du kan stadigvæk ikke have kolonnenavne med det samme navn. Så det bliver til noget i retningen af

SELECT ISNULL(handling_1,"") As handling_1, ISNULL(handling_2,"")As handling_2 FROM For_detail WHERE ID =" & IDX

Så behøver du heller ikke rette noget i din aspx-siden...
Avatar billede Slettet bruger
25. maj 2004 - 10:32 #12
Hej
Det ser ikke ud til at det virker. Det virker når jeg ikke har:
ISNULL(handling_1,"") As handling_1
men hvis jeg skriver:
ISNULL(handling_1,"") As handling_1
får jeg følgende fejle
System.Data.OleDb.OleDbException: Syntax error in string in query expression 'ISNULL(handling_1,") As handling_1
og hvis jeg skriver:
ISNULL(handling_1,'') As handling_1
Får jeg denne fejl.
System.Data.OleDb.OleDbException: Wrong number of arguments used with function in query expression 'ISNULL(handling_1,'')'.

Ved du hvorfor?
Avatar billede jakobg Nybegynder
25. maj 2004 - 11:19 #13
Hvilken database anvender du?
Avatar billede Slettet bruger
25. maj 2004 - 11:28 #14
MS Access 2000
Avatar billede jakobg Nybegynder
25. maj 2004 - 11:55 #15
Bummer, Access understøtter tilsyneladende ikke ISNULL-funktionen, den hedder NZ istedet (så lærte jeg da også noget i dag:).

Så bliver din SQL til noget i retningen af:

SELECT NZ(handling_1,"") As handling_1, NZ(handling_2,"")As handling_2
FROM For_detail WHERE ID =" & IDX
Avatar billede Slettet bruger
25. maj 2004 - 12:27 #16
Æv - hvor det driller. Nu har jeg:

SELECT (NZ(Handling_1)," "), (NZ(Handling_2)," ")
FROM For_detail WHERE ID =" & IDX
Og får denne fejl:
Compiler Error Message: BC30455: Argument not specified for parameter 'connection' of 'Public Sub New(cmdText As String, connection As System.Data.OleDb.OleDbConnection, transaction As System.Data.OleDb.OleDbTransaction)'.
...som jeg heller ikke fatter en meter af? Kan du gennemskue den?
Avatar billede jakobg Nybegynder
25. maj 2004 - 12:34 #17
Brug enkelt-plinger: '
Ikke gåseøjne (").

SELECT (NZ(Handling_1), ' '), (NZ(Handling_2),' ')
FROM For_detail WHERE ID =" & IDX
Avatar billede Slettet bruger
25. maj 2004 - 12:34 #18
Hvis jeg erstatter med
SELECT (NZ(Handling_1),' '), (NZ(Handling_2),' ')
FROM For_detail WHERE ID =" & IDX
Får jeg denne fejl:
System.Data.OleDb.OleDbException: Syntax error (comma) in query expression '(NZ(Handling_1),' ')'.
Avatar billede Slettet bruger
25. maj 2004 - 12:35 #19
...og uden komma:
System.Data.OleDb.OleDbException: Syntax error (missing operator) in query expression '(NZ(Handling_2)' ')'.
Avatar billede jakobg Nybegynder
25. maj 2004 - 12:45 #20
Du behøver iøvrigt ikke paranteserne:

SELECT NZ(Handling_1, ' ') AS Handling_1, NZ(Handling_2, ' ') AS Handling_2
FROM For_detail WHERE ID =" & IDX
Avatar billede Slettet bruger
25. maj 2004 - 12:52 #21
Så fatter den slet ikke funktionen - den er sgu da lidt emsig...
ELECT NZ(Handling_1, ' ') AS Handling_1, NZ(Handling_2, ' ') AS Handling_2
FROM For_detail WHERE ID =" & IDX
og
ELECT NZ(Handling_1, ' '), NZ(Handling_2, ' ') FROM For_detail WHERE ID =" & IDX
..giver begge
Exception Details: System.Data.OleDb.OleDbException: Undefined function 'NZ' in expression.
Avatar billede Slettet bruger
25. maj 2004 - 12:53 #22
..der mangler lige et par "s"
Avatar billede jakobg Nybegynder
25. maj 2004 - 13:00 #23
Og du er fuldstændigt 100% på at det er Access 2000 du anvender?

SELECT ID, Nz(vchTitle, ' ' ) as vchTitle
FROM tbl_Test;

Ovenstående eksempel virker upåklageligt for mig?
Avatar billede Slettet bruger
25. maj 2004 - 13:08 #24
Ja. Det er jeg sikker på.
Avatar billede Slettet bruger
25. maj 2004 - 13:09 #25
Jeg roder lidt med det og vender tilbage.
Du får lige point og mange tak for hjælpen!

...må jeg henvise til http://www.eksperten.dk/spm/502200 :-)
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