Just nu i M3-nätverket
Gå till innehåll

Skicka utvald vinnare vidare


Micke_skane

Rekommendera Poster

Micke_skane

Hej Alla,

 

Suttit och fått ihop en databas där man för in personer som svarat på frågor. Dem som har svarat rätt är med i ett urval som slumpar ut en vinnare.

Problemet är att min SQL-sats Inte sköter urvalet som jag vill.

I databasen har jag ett JA/NEJ-fält som blir SANT om personerna svarat rätt.

Då jag kör min kod och lumptalet hamnar på en post där fältet svarat_ratt är FALSKT så får jag ett felmeddelande:

Row handle i invalid

 

Varför dem poster är med i urvalet kan jag inte förstå!

 

Så här ser koden ut:

 

slumpa_vinnare.aspx

'# Databasanslutning
Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("db2/vinstval_namn.mdb"))

Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
   '#<--==========Vinsturval========================-->
   Dim NumNamn As Integer
   '#==========Hämta Antal namn i databasen================
   [b]Dim StrSQL As String = "SELECT TOP 1 namnID FROM vinst_urval Where svarat_ratt=true ORDER BY namnID DESC"[/b]
   Dim myCommand As New OleDbCommand(StrSQL, myConnection)
   Dim myReader As OleDbDataReader

   Try
       myConnection.Open()
       myReader = myCommand.ExecuteReader
       myReader.Read()
       NumNamn = myReader("namnID")
       myReader.Close()
       myConnection.Close()
   Catch ex As Exception
       Namn.Text = "Databasfel: vinst_fornamn antal"
   End Try

   '#==========Slumpmässigt tal======================
   Dim MyValue As Int16
   '# Starta slumptalsgeneratorn
   Randomize() 
   '# Generera slumpmässigt tal mellan 1 och antal namn i databasen
   MyValue = Int((NumNamn * Rnd()) + 1) 
   '#=========Hämta vald vinnare=======================
   [b]StrSQL = "SELECT vinst_fornamn FROM vinst_urval WHERE svarat_ratt=true AND namnID LIKE " & MyValue[/b]
   myCommand.CommandText = StrSQL

   Try
       myConnection.Open()
       myReader = myCommand.ExecuteReader
       myReader.Read()
       Namn.Text = myReader("vinst_fornamn").ToString
       myReader.Close()
       myConnection.Close()
   Catch ex As Exception
       Namn.Text = ex.Message
   End Try
   '#<--=========Slut av val av vinnare======================->

End Sub

 

Tycker min sql-sats ser rätt ut...

Tar jag bort Where-frågan så får jajg fram ett namn utan något felmeddelande.

 

Sen skulle jag vilja veta Var/Hur i koden jag kan skriva för att skicka alla fälten ur den post jag får fram till en annan tabell.

Vet att man kan använda Into men vet inte riktigt Var och hur jag gör Här i detta exemplet.

 

Hoppas Någon har en lösning/ide till mitt problem!

 

Ha det!

Micke

 

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...