Avatar billede agerled Nybegynder
22. december 2004 - 13:41 Der er 13 kommentarer og
1 løsning

fra asp til vb.net

Hej er der nogen der kan vise mig hvordan følgende ASP kode vil se ud i vb.net...

<%
set rs = openrecordset("select * from produkter")
while not rs.eof
set rs2 = openrecordset("select * from ordre where produktID = '" & rs("produktID") & "'")
while not rs2.eof
response.write rs("produktnavn")
response.write rs("produktkategori")

response.write rs2("produktID")
response.write rs2("ordreID")
response.write rs("antalbestilt") + 1
rs2.movenext
wend
set rs2 = nothing
rs.movenext
wend
set rs = nothing

På forhånd tak!
Avatar billede arne_v Ekspert
22. december 2004 - 13:54 #1
Prøvt evt. at kigge i denne tråd:
  http://www.eksperten.dk/spm/571622
selvom det er C# så viser det lidt af mulighederne i .NET (ASP style, DataGrid
med inline kode, Datagrid med code behind)
Avatar billede arne_v Ekspert
22. december 2004 - 13:54 #2
Avatar billede agerled Nybegynder
22. december 2004 - 14:26 #3
Måske jeg lige skulle nævne at det er til Windows apps jeg skal bruge det..
Avatar billede arne_v Ekspert
22. december 2004 - 14:31 #4
Åh.

Det er jo en lille smule anderledes.
Avatar billede arne_v Ekspert
22. december 2004 - 14:31 #5
Jeg har engang lavet dette simple eksempel:

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Drawing
Imports System.Windows.Forms

Namespace DefaultNamespace
    Public Class MainForm
        Inherits Form
        Private dg As DataGrid
        Private save As Button
        Private con As OleDbConnection
        Private da As OleDbDataAdapter
        Private cb As OleDbCommandBuilder
        Private ds As DataSet

        Public Shared Sub Main
            Dim fMainForm As New MainForm
            fMainForm.ShowDialog()
        End Sub

        Public Sub New()
            MyBase.New
            Me.InitializeComponent
        End Sub

        Private Sub InitializeComponent()
            con = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb;UserId=admin;Password=")
            con.Open
            da = New OleDbDataAdapter("SELECT * FROM T1", con)
            cb = New OleDbCommandBuilder(da)
            da.UpdateCommand = cb.GetUpdateCommand
            ds = New DataSet
            da.Fill(ds, "T1")
            dg = New DataGrid
            save = New Button
            SuspendLayout
            dg.Location = New Point(50, 50)
            dg.Size = New Size(300, 200)
            dg.SetDataBinding(ds, "T1")
            save.Location = New Point (50, 300)
            save.Size = New Size (100, 25)
            save.Text = "Save"
            AddHandler save.Click, AddressOf SaveClick
            ClientSize = New Size(400, 400)
            Controls.Add(dg)
            Controls.Add(save)
            Text = "Main Form"
            ResumeLayout(false)
        End Sub
       
        Sub SaveClick(ByVal sender As Object, ByVal e As EventArgs)
            da.Update(ds, "T1")
            ds.AcceptChanges
            dg.Refresh
        End Sub
    End Class
End Namespace
Avatar billede agerled Nybegynder
22. december 2004 - 15:26 #6
Jeg kan ikke rigtig se hvordan din kode gør det samme som asp-koden. Kan du forklare?
Avatar billede arne_v Ekspert
22. december 2004 - 15:29 #7
Den viser indholdet af en tabel i en data grid.

Og du har ret i at der ikke er så meget "database kode" i koden.

Men der er fordi man bruger DataGrid komponent.
Avatar billede arne_v Ekspert
22. december 2004 - 15:33 #8
Du kan også tilgå data mere manuelt.

Simpel console app eksempel:

Imports System
Imports System.Data.OleDb

Class MainClass
    Public Shared Sub Main(ByVal args As String())
        Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb;User Id=admin;Password=")
        con.Open
        Dim cmd As OleDbCommand = New OleDbCommand ("SELECT * FROM T1", con)
        Dim rdr As OleDbDataReader = cmd.ExecuteReader
        While rdr.Read
            Dim f1 As Integer = CType(rdr(0), Integer)
            Dim f2 As String = CType(rdr(1), String)
            Console.WriteLine(f1 & " " & f2)
        End While
        con.Close
    End Sub
End Class
Avatar billede arne_v Ekspert
22. december 2004 - 15:33 #9
Eller en krydsning:

Imports System
Imports System.Data
Imports System.Data.OleDb

Module Main
    Sub Main()
        ' initialize
        Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb")
        Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM T1", con)
        Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(da)
        Dim ds As DataSet  = New DataSet
        da.Fill(ds, "T1")
        Dim dt As DataTable = ds.Tables("T1")
        ' print all rows
        Dim i As Integer
        For i = 0 To (dt.Rows.Count - 1)
            Console.WriteLine(dt.Rows(i).Item("F1") & " " & dt.Rows(i).Item("F2"))
        Next
        ' add new row
        Dim dr As DataRow = dt.NewRow
        dr.Item("F1") = 12345
        dr.Item("F2") = "ABCDE"
        dt.Rows.Add(dr)
        ' print all rows
        For i = 0 To (dt.Rows.Count - 1)
            Console.WriteLine(dt.Rows(i).Item("F1") & " " & dt.Rows(i).Item("F2"))
        Next
        ' write changes back to database
        da.Update(ds, "T1")
        con.Close
    End Sub
End Module
Avatar billede agerled Nybegynder
22. december 2004 - 16:13 #10
hmmm... det forstår jeg egentlig ikke....

her kommer mit egentlige problem...

Her er min kode: (hvor jeg bruger en chart component fra Dundas.com)

ProgressStatusBar1.StartProgress("Henter data...")

        Dim AgentTotHit As OracleDataAdapter
        Dim TotHit As OracleDataAdapter
        Dim daPhoneNumbers As OracleDataAdapter
        Dim daNamePhone As OracleDataAdapter
        Dim strConnection As String = ORACLE_CONNECTION_STRING
        Dim OracleConn As New OracleConnection(strConnection)
        Dim ds As DataSet

        Dim sql1 As String = "select distinct(navn) as navn,sum(produkter) as totprod,sum(kald) as totkald,sum(listen) as totliste from hitrate_dk where substr(dato,4,2) = '" & monthnumber.Text & "' and navn <> 'Total' group by navn"
        Dim sql2 As String = "select sum(produkter) as totalprod, count(distinct(dato)) as totaldato from hitrate_dk where substr(dato,4,2) = '12' and navn <> 'Total'"

        Try

            OracleConn = New OracleConnection(strConnection)
            OracleConn.Open()
            ds = New DataSet

            AgentTotHit = New OracleDataAdapter
            ds = GetDataSet(ds, OracleConn, AgentTotHit, sql1, "AgentTotHit")

            TotHit = New OracleDataAdapter
            ds = GetDataSet(ds, OracleConn, TotHit, sql2, "TotHit")

        Catch
        End Try

        OracleConn.Close()

        DataGrid3.DataSource = ds

        Try

            ' set chart data source
            Chart6.DataSource = ds

            ' set series members names for the X and Y values

            Chart6.Series("Produkter").ValueMemberX = ds.Tables("AgentTotHit").Columns("navn").ToString

            Chart6.Series("Produkter").ValueMembersY = ds.Tables("AgentTotHit").Columns("totprod").ToString
'---> Denne linie fejler
          Chart6.Series("Avg").ValueMembersY = ds.Tables("TotHit").Columns("totalprod").ToString
'---> Denne linie fejler



            ' data bind to the selected data source
            Chart6.DataBind()
         
        Catch exc As Exception

            MsgBox("Der er sket en fejl!", _
                CAPTION_ICON_BUTTON, CAPTION_TITLE)

        End Try

        ProgressStatusBar1.StopProgress()

Jeg har markeret hvilken linie der ikke virker korrekt. Det virker som om den ikke vil hente dataene fra den table i datasettet....

Kan nogen se hvad jeg gør galt?
Avatar billede arne_v Ekspert
22. december 2004 - 22:23 #11
Kan du præcisere "fejler" ?
Avatar billede arne_v Ekspert
22. januar 2005 - 23:03 #12
Kommet videre ?
Avatar billede agerled Nybegynder
28. januar 2005 - 08:16 #13
ja tak læg bare et svar..
Avatar billede arne_v Ekspert
28. januar 2005 - 08:38 #14
ok
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester