15. april 2003 - 10:42Der er
16 kommentarer og 1 løsning
Resultat af SQL over i en Label
Jeg er lidt grøn i det her ASP.Net, så jeg skal lige bruge lidt "starthjælp". Jeg skal have resultatet af min SQL ud i Label1. Jeg har nedenstående, men mangler det der sætter Label1.text = resultat af SQL
Dim StrSQL as string = "select tekst from tekst where tekst_id = '30.0.0.0.0.0.0.0';" Dim strConnection as string = "user id=blabla;password=sshhhhh;database=nyehs_prod;server=SQL1;Connect Timeout=30" Dim objDataSet as new DataSet() Dim objConnection as New SqlConnection(strConnection)
Dim objDataAdapter as new SqlDataAdapter(strSQL, strConnection) objDataAdapter.Fill(objDataSet, "tekst")
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Hvis du kun skal have en værdi ud af din database skal du ikke bruge et dataset, ej heller en datareader som clausjul forslår, men derimod ExeccuteScalar metoden på Command objektet som netop er beregnet til denne situation:
Dim StrSQL as string = "select tekst from tekst where tekst_id = '30.0.0.0.0.0.0.0';" Dim strConnection as string = "user id=blabla;password=sshhhhh;database=nyehs_prod;server=SQL1;Connect Timeout=30" Dim objConnection as New SqlConnection(strConnection)
Dim objCommand as new SqlCommand(strSQL, objConnection) objConnection.Open() Label1.text = CType(command.ExecuteScalar(), String) objConnection.Close()
Det er heller ikke det han gør. Han indekserer jo netop readeren (datareader("tekst")) og derfor er det et object han vil putte ind i Label1.Text. Omend det måske ville være mere korrekt - og i hvert fald mere forståeligt - at caste explicit eller bruge ToString metoden, så gør VB's brug af varianter vist nok at castet sker implicit og at det derfor er OK!
> Disco_keld: Hvis du læser mit første indlæg ordentligt, så vil du kunne se at jeg er grøn i det her .Net-værk, så "nej, jeg koder ikke mine egne klasser" - aner ikke hvordan det gøres.......
>Disco_keld: Hvis man er ved at læse ASP.Net og udelukkende leger lidt for at forstå syntaks osv. så er det temmelig meget overkill at inddele sin kode i lag og jeg vil skyde på at for humlebien forstyrrer kommentarer vedr. n-tier modeller mere end de hjælper.
OK - så langt, så godt.... Hvad gør jeg hvis jeg vil have flere felter ud af SQL-forespørgslen. Altså "select * from tekst where tekst_id = '30.0.0.0.0.0.0.0'"
label1.text = tekst label2.text = titel label3.text = dato
Nu bør du jo nok for god ordens skyld lukke dette spørgsmål da der er svaret, men du bruger en datareader hvis du skal LÆSE flere rækker:
Dim StrSQL as string = "select * from tekst where tekst_id = '30.0.0.0.0.0.0.0';" Dim strConnection as string = "user id=blabla;password=sshhhhh;database=nyehs_prod;server=SQL1;Connect Timeout=30" Dim objConnection as New SqlConnection(strConnection)
Dim objCommand as new SqlCommand(strSQL, objConnection) objConnection.Open() Dim objReader as objCommand.ExecuteReader()
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.