Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


poll

Postades av 2004-09-03 08:14:47 - Robert Säll, i forum asp.net generellt, Tråden har 16 Kommentarer och lästs av 553 personer

Hur gör man en poll (omröstning) i asp.net?

På något sätt så måste man ju få reda på den aktuella frågans id så att man kan ta fram rätt svarsalternativ,
hur ska man göra detta innan man ens öppnat en repeater?

Någon som har en lösning om detta?


Svara

Sv: poll

Postades av 2004-09-03 08:41:24 - Mikael Johansson

Vet inteom jag missförstår din fråga, men du kan ju använda dig av TOP vid kopplingen till DB.


Svara

Sv: poll

Postades av 2004-09-03 10:15:16 - Robert Säll

Japp, men hur ska jag göra för att få fram den aktuella frågans id innan jag gjort en repeater så att jag kan använda det id't till att få fram de rätta svarsalternativen?


Svara

Sv: poll

Postades av 2004-09-03 10:30:56 - Johan Normén

Robert.

Hej, Kan den aktuella frågan vara olika? eller är det alltid samma aktuella fråga? för om det är samma
kan du ju plocka den efter senaste datum eller hur du ni identifierar frågorna. På så vis får du ut ID som du sedan kan nyttja för svaren.

Mvh Johan


Svara

Sv: poll

Postades av 2004-09-03 11:44:45 - Robert Säll

Frågan skiftar varje vecka..


Svara

Sv: poll

Postades av 2004-09-03 12:00:14 - Patrik Dahlén

Jag förstår inte riktigt problemet.

Hur ser din databasmodell ut?

När du öppnar sidan där din fråga skall synas så hämtar du aktuell fråga från databasen. Antingen hämtar du frågan och sedan svarsalternativen i ett eget db-anrop baserat på den aktuella frågans id. Sedan binder du svarsalternativen till repeatern. Eller så gör du en JOIN och får tillbaka alla svarsalternativ på en gång. Du skriver ut frågan från första raden i db-resultatet och binder sedan samma db-resultat till din repeater men visar då bara svarsalternativen.

Kolla även här, http://aspnet.4guysfromrolla.com/articles/061604-1.aspx


Svara

Sv: poll

Postades av 2004-09-03 13:50:52 - Robert Säll

Jag har en tabell för frågan, sedan en annan tabell för svarsalternativen!
För att jag ska få ut rätt svartalternativ så måste jag få reda på frågans id eftersom att det är idät som binder frågan och svarsalternativen.

Så jag frågar igen: Hur ska jag få reda på frågans id innan jag öppnar repeatern?

EDIT:
dim sql as string = "SELECT * FROM fraga order by datum desc limit 0,1"
.....
någonting som tar ut ett id..
..
fraga.DataSource = reader
fragar.Databind()
..
Dim sql2 as string "SELECT * FROM alt WHERE Fid = "& id &""
..
alt.DataSource = CB.CreateRepeater("SELECT * FROM gastbok")
alt.Databind()

Om jag ska göra en join, hur ska jag göra så att bara svarsalternativen blir länkar?


Svara

Sv: poll

Postades av 2004-09-03 14:50:53 - Patrik Dahlén

dim sql as string = "SELECT * FROM fraga order by datum desc limit 0,1"

Om det där är din första fråga så får du ju ut id:t. Kör den frågan i en Repeater och plocka ut det. Sen använder du det i din andra fråga. Om du vet hur man kör en databasfråga så vet du ju redan svaret på din fråga.

Edit:
Det jag inte förstår är varför du ska databinda själva frågan, och i så fall, vad databinder du den till?
Och om du nu ska göra det så får du lägga en OnItemDataBound på det du nu binder till och sen köra FindControl och hitta ID:t, därefter binda din svarsrepeater.


Svara

Sv: poll

Postades av 2004-09-03 15:34:15 - Robert Säll

Hur använder jag OnItemDataBound och FindControl då?


Svara

Sv: poll

Postades av 2004-09-03 15:45:20 - Andreas Håkansson

Läser i dokumentationen? Finns en online version på msdn.microsoft.com/library


Svara

Sv: poll

Postades av 2004-09-03 16:06:24 - Patrik Dahlén

För det första, varför binder du frågan och vad binder du den till? Du behöver inte databinda för att få ut saker ur en Reader eller annat från en databas.

För det andra, om du inte vet vad OnItemDataBound är så föreslår jag att du läser quickstarten på http://samples.gotdotnet.com/quickstart/aspplus/ samt på MSDN vad de kontroller du använder är för något och vad de gör.


Svara

Sv: poll

Postades av 2004-09-05 09:26:11 - Robert Säll

Jag är ju nybörjare i asp.net som ni nog förståt, men är det inte "DataBind()" som lägger till allt i repeatern? Om inte, vad gör den då?

Hur ska jag kunna köra frågan i en repeater?
Då måste jag väl ta in "<%" taggar? Är det den enda utvägen?
Vad jag hört så ska man undvika att använda dessa så mycket man kan, men om det inte gör så mycket så ska jag försöka fixa det..


Svara

Sv: poll

Postades av 2004-09-05 09:52:44 - Patrik Dahlén

Jag skrev fel, det jag menade var att du kör frågan och får tillbaka en Reader som vanligt.

Lägg en Label i din .aspx kod där frågan skall visas.
code-behind
<code>
... kör koden i en reader precis som vanligt ...

myReader.Read()
Dim currId As Integer
lblFraga.Text = myReader("fragekolumn")
currId = myReader("idkolumn")

... kör dbfråga efter svar och skicka in currId ...
... Databind svaren till en Repeater
</code>
Innan man kör myReader.Read() så kan man kolla så den inte är tom, men den skulle bara vara tom om din databastabell är tom.

Kolla på MSDN vad du kan göra med en Reader. Kolla igenom de tutorials som finns på gotdotnet.com också.
Något som är bra att göra till rutin är att varje gång du ska använda en kontroll du inte använt förut så läs igenom på MSDN vad kontrollen är och vad den kan göra.


Svara

Sv: poll

Postades av 2004-09-05 19:20:18 - Robert Säll

När jag kör din kod får jag:
Name 'fraga' is not declared.

Här är koden:
Sub page_load()
fraga.DataSource = CB.CreateRepeater("SELECT fraga FROM fraga ORDER BY datum DESC Limit 0,1")
fraga.Databind()
'tar reda på frågan
fraga.Read()
Dim CurrId as integer
lblfraga.text = fraga("fraga")
lbltotala.text = fraga("totalaroster")
CurrId = fraga("id")

'denna kod lägger till alla svar
svar.DataSource = CB.CreateRepeater("SELECT alt FROM fraga WHERE id = "& PollId &"")
svar.Databind()

End Sub


Svara

Sv: poll

Postades av 2004-09-05 19:53:23 - Patrik Dahlén

<info>
Sub page_load()
fraga.DataSource = CB.CreateRepeater("SELECT fraga FROM fraga ORDER BY datum DESC Limit 0,1")
fraga.Databind()
'tar reda på frågan
fraga.Read()
Dim CurrId as integer
lblfraga.text = fraga("fraga")
lbltotala.text = fraga("totalaroster")
CurrId = fraga("id")

'denna kod lägger till alla svar
svar.DataSource = CB.CreateRepeater("SELECT alt FROM fraga WHERE id = "& PollId &"")
svar.Databind()

End Sub
</info>
1. Vad är CB.CreateRepeater och fraga.DataBind? Du ska ju köra frågan så att du får ut en DbReader. Läs på vad en Reader är på MSDN för vad du gör nu har jag inte en aning om.

2. Varför använder du PollId i din andra Select när variabeln heter CurrId?

Du måste ändra i min kod så att den passar dina förutsättningar.
Om du inte förstår hur du använder Reader och Repeaters så är det dags att gå tillbaka till Tutorials.


Svara

Sv: poll

Postades av 2004-09-05 20:25:40 - Robert Säll

1. CB.CreateRepeater:
Public Shared Function CreateRepeater(sql As String)
Dim Cn As New OdbcConnection(ConfigurationSettings.AppSettings("connect"))
Dim Command As New OdbcCommand (sql, Cn)
Cn.Open()
Dim lasare As odbcDataReader
lasare = Command.ExeCuteReader()
return lasare
lasare.Close()
Cn.Close()
Command.Dispose()
Cn.Dispose()
End function

Jag gör alltså en repeter så jag slipper så mycket kod i aspx filen :)

Säg vad jag ska söka på i SDK:n, när jag säkte på "Reader" så kommer jag få sitta hela kvällen och titta igenom allt =S

2. Misstag, ska inte vara så!


Svara

Sv: poll

Postades av 2004-09-05 21:16:54 - Patrik Dahlén

Ok, det är alltså en CreateReader funktion du gjort, inte Repeater.
Mer om odbcDataReader, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataodbcodbcdatareaderclasstopic.asp

Då förstår jag vad du försöker göra, men varför har du DataSource och DataBind? En Reader är ju databasresultatet och du försöker binda något till den. Funktionen returnerar en Reader, dvs.
<code>
dim fraga as odbcDataReader
fraga = CB.CreateRepeater("SELECT fraga FROM fraga ORDER BY datum DESC Limit 0,1")
fraga.Read()
Dim CurrId as integer
lblfraga.text = fraga("fraga")
lbltotala.text = fraga("totalaroster")
CurrId = fraga("id")

'denna kod lägger till alla svar
dim svar As odbcDataReader
svar.DataSource = CB.CreateRepeater("SELECT alt FROM fraga WHERE id = "& CurrId &"")
svar.Databind()
</code>
Läs på i länken ovan för att se mer om Reader.

Några andra saker jag undrar över är, heter båda tabellerna fraga?
Heter kolumnerna fraga och alt?


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
698
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies