20. maj 2004 - 20:45Der 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>
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" ) %>
Synes godt om
Slettet bruger
21. maj 2004 - 12:13#2
Tak. Det virker. Sender du venligst et svar?
Synes godt om
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 :-)
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...
Synes godt om
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
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... :)
Synes godt om
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
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...
Synes godt om
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,'')'.
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
Synes godt om
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?
SELECT (NZ(Handling_1), ' '), (NZ(Handling_2),' ') FROM For_detail WHERE ID =" & IDX
Synes godt om
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),' ')'.
Synes godt om
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)' ')'.
SELECT NZ(Handling_1, ' ') AS Handling_1, NZ(Handling_2, ' ') AS Handling_2 FROM For_detail WHERE ID =" & IDX
Synes godt om
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.
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.