06. maj 2005 - 18:28Der er
18 kommentarer og 1 løsning
[ASP.NET, VB] og random udtræk fra database
har følgende fil quoteHandler.vb :
Imports System.Data.SqlClient
Public Class quoteHandler Dim p As String Dim i As Integer Dim antalPoster As Integer Function Quote(ByVal fnctCmd As Integer) As String Randomize() i = 5 Dim conn As SqlConnection = New SqlConnection conn.ConnectionString = "Server=Anaia;Database=weblogQuotes;Uid=sa;Pwd=" conn.Open() Dim cmd As New SqlCommand("select * from quoteTable", conn) Dim myReader As SqlDataReader = cmd.ExecuteReader() Try While myReader.Read() = True p = p & myReader.Item("Quote") antalPoster = myReader.Item("QuoteID") Quote = p & " --------------" & antalPoster End While Finally myReader.Close() End Try conn.Close() End Function End Class
som henter tekst fra en database. Al teksten bliver returneret til funktionen selv men jeg vil egentlig gerne ha det delt sådan op så alle quotesne kommer i et array så jeg kan vælge en random... jeg har prøvet mig frem men jeg er åbentbart ikke så god som jeg troede jeg var (har ikke arbejdet så meget i Arrays) Nogen der gider stoppe noget array ind og et random udtræk der så returneres til functionen selv...
Det er en meget dyr måde at lave random quotes på.
Hav et felt qnum i tabellen med en fortløbende nummerering, find det totale antal, træk et tilfældigt tal x op til det tal, lav en SELECT ... WHERE qnum=x.
jeg har været den første del af det du snakker om igennem - med WHERE men jeg mangler en dims der fortæller antal poster i databasen for at lave random. Jeg har egentlig aldrig beskæftiget mig så meget med SQL - er først begyndt nu hvor jeg er hoppet over i ASP.NET fra VB.NET
Men hvis du har en mindre kode vil jeg da smile og være glad :)
den ene query behøves jo kun at blive udført en gang
den anden skal så udføres hver gang du skal bruge en tilfældig quote
og den anden er ikke
SELECT * FROM quoteTable
men
SELECT * FROM quoteTable WHERE qnum = X
Synes godt om
Ny brugerNybegynder
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.