Avatar billede Slettet bruger
26. april 2004 - 21:26 Der er 16 kommentarer og
1 løsning

Hente fra access db og skrive ud i tekstboks

Hej

Jeg prøver at hente data fra en access db og vise dem i forskellige tekstbokse, jeg har overhoved ikke styr på hvad jeg laver, og jeg får følgende fejl:

Could not load type 'LoadDetails'

Og jeg bruger følgende kode:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Page Inherits="LoadDetails" scr="CBafvigelsesrapport_vis.vb" %>
                               
<Script Runat="Server">

Public Class ClassVisData
    Public sNavn As String
End Class

Public Class ClassDbconnention
   
    Public Function GetTextById( ByValId As Integer ) As ClassVisData
   
    Dim DbConn As OleDbConnection
    Dim SqlCmd As OleDbCommand
    Dim DataReader As OleDbDataReader
   
    Try
        DbConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\inetpub\wwwroot\database\afvigelsesrappporter.mdb")
        DbConn.Open()
        SqlCmd = New OleDbCommand( "Select * FROM afvigelser", DbConn )
        DataReader = OleDbCommand.ExecuteReader()
   
   
    Dim Details As ClassVisData
    Try
        Details = New ClassVisData
        If DataRead.Hasrows
            While DataRead.Read()
                With Detalils
                    .sNavn = DataReader.GetString(0).ToString()
                End If
            End While
           
            Return DataRead
        End If
   
    Finally
        If Not DataRead.IsClosed Then
            DataRead.close()
        End If
        DbConn.Close()
    End Try     
    Catch ex as Exception
        Throw ex
    End Try     
  End Function

End Class   

</Script>

...og


Private Sub LoadDetails(id as integer)
  Dim obj as ClassDbConnection
  Dim details as ClassVisData
  Try
      obj = New ClassVisData
      details = obj.GetTextById(id)
      MinTextBox.Text = details.sNavn.ToString()
  Catch ex as exception
      Throw ex
  End Try
End Sub

Er der en der kan se hvad jeg gør galt?
Avatar billede repsak Nybegynder
27. april 2004 - 08:32 #1
Ja, noget tyder på at din klasse LoadDetails ikke kan findes. Bruger du evt. namespace som driller?
HVor ligger filerne?
Arver LoadDetails fra Page?
Avatar billede Slettet bruger
27. april 2004 - 10:25 #2
Jeg bruger ikke andre namsspaces end dem der er vist. Filerne ligger i samme mappe (mappen er en undermappe til en undermappe til wwwrooot). LoadDetails arver ikke fra Page, men hvis jeg indfører "Inherits Page" lige under "Private Sub LoadDetails( id As Integer )" giver det samme fejl.
Avatar billede repsak Nybegynder
27. april 2004 - 11:27 #3
Det lyder som om du har misforstået noget.
nu kender jeg ikke VB.NET synkaks, men sådan her kan det se ud i C#:

public class LoadDetails : Page{
  public LoadDetails(){
    //kode
  }
}
Avatar billede Slettet bruger
27. april 2004 - 11:44 #4
Hmm - ja der må der være. Men jeg kan ikke gennemskue hvad det er? Jeg er ikke god til VB.NET og endnu dårligere til C#. Kan du forklare hvad det betyder det du har skrevet?
Forresten Det nederste stykke kode (Private sub LoadDetails - End Sub) er gemt i en codebehind fil.
Avatar billede repsak Nybegynder
27. april 2004 - 12:32 #5
kort fortalt skal den klasse du arver fra i <%@ Page Inherits="LoadDetails" scr="CBafvigelsesrapport_vis.vb" %> extende Page. (':' i C# = 'Inherits' i VB.NET)
Konstruktøren har ingen returtype. Derfor blot 'public LoadDetails()'
Hjalp det?
Avatar billede jaffafo Nybegynder
27. april 2004 - 12:43 #6
Public Class LoadDetails : Inherits page

  Public sub LoadDetails()

  end sub

end class

Noget i den stil
Avatar billede Slettet bruger
27. april 2004 - 12:49 #7
Det giver stadig samme fejl :-(
Avatar billede Slettet bruger
27. april 2004 - 12:54 #8
Hvis jeg erstatter "Public Class LoadDetails" med "Namespace VisData" i min codebehind fil og erstatter "Page Inherits="LoadDetails"..." med "Import Namespace..." i min .aspx fil, får jeg i stedet følgende fejl:

BC32016: 'Public Overridable Function ToString() As String' has no parameters and its return type cannot be indexed.

Og denne linie er fremhævet:

.sNavn = DataReader.ToString(0).ToString

Giver det mening?
Avatar billede repsak Nybegynder
27. april 2004 - 12:58 #9
Helt ro på nu... :-)
Hvis du ikke er så godt inde i ASP.NET så vent lige 2 sek med at lege med databaser... Hvorfor har du både din kode i .vb og .aspx?
Avatar billede jaffafo Nybegynder
27. april 2004 - 13:03 #10
Lad være med at starte med code behind... det gav mig mange problemer i starten..

Prøv først at få koden at virke i aspx filen og så flytter du over på CB bagefter
Avatar billede Slettet bruger
27. april 2004 - 13:08 #11
Nå ja... Man bliver vel hurtigt grebet og vil mere :-)
Min plan er at hente en bestemt record fra en access Database der skal vælges ved et Id der kommer fra querystring.
Denne record skal så vises i forskellige tekstbokse, således at de kan ændres/opdateres, printes eller bare ses.
Jeg har så fået hjælp fra et andet spørgsmål (http://www.eksperten.dk/spm/489384), men da det gik i stå og utålmodigheden fik overtaget, oprettede jeg et nyt spørgsmål.

Ok - jeg er frisk på at vente med codebehind og så bare få det til at virke :-)
Avatar billede jaffafo Nybegynder
27. april 2004 - 14:45 #12
det gjorde jeg og det gjorde hvertfald at jeg fik et bedre overblik.: :)
Avatar billede Slettet bruger
27. april 2004 - 14:57 #13
Nu har jeg lavet følgende forsøgs kode, men jeg går i stå der hvor jeg binder(?) data til textbox-teksten? Håber I kan hjælpe med det.

      Sub Page_Load( s As Object, e As EventArgs )
        Dim IDX As Integer
        IDX = Request.QueryString("ID")
       
        Dim sNavnTxt As New TextBox()
       
        Dim DbConn As OleDbConnection
        Dim SqlCmd As OleDbCommand
        Dim DataReader As OleDbDataReader
       
        DbConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\inetpub\wwwroot\database\afvigelsesrapporter.mdb")
        SqlCmd = New OleDbCommand( "Select * FROM afvigelser WHERE ID =" & IDX, DbConn )
        DbConn.Open()
        DataReader = SqlCmd.ExecuteReader()
        While DataReader.Read()
            sNavnTxt.Text = DataReader.ToString(navn).ToString()
        End While
       
        DataReader.Close()
        DbConn.Close()
   
       
        Dim sHvemTxt As String
        sHvemTxt = "IDX = " & IDX
       
        NavnTxt.Text = sNavnTxt
        HvemTxt.Text = sHvemTxt
   
    End Sub
Avatar billede Slettet bruger
27. april 2004 - 15:41 #14
Hej - jeg fandt en løsning der kan gå her til at starte med til jeg får mere styr på det. Må jeg så godt tage point selv?

Her er den kode jeg nåede frem til:

      Sub Page_Load( s As Object, e As EventArgs )
        Dim IDX As Integer
        IDX = Request.QueryString("ID")
       
        Dim sNavnTxt As String
       
        Dim DbConn As OleDbConnection
        Dim SqlCmd As OleDbCommand
        Dim DataReader As OleDbDataReader
       
        DbConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\inetpub\wwwroot\database\afvigelsesrapporter.mdb")
        SqlCmd = New OleDbCommand( "Select * FROM afvigelser WHERE ID =" & IDX, DbConn )
        DbConn.Open()
        DataReader = SqlCmd.ExecuteReader()
        While DataReader.Read()
            sNavnTxt = DataReader(8)
        End While
       
        DataReader.Close()
        DbConn.Close()
   
       
        Dim sHvemTxt As String
        sHvemTxt = "IDX = " & IDX
       
        NavnTxt.Text = sNavnTxt
        HvemTxt.Text = sHvemTxt
   
    End Sub
Avatar billede jaffafo Nybegynder
28. april 2004 - 00:32 #15
selvf. må du det :) du løste jo selv problemet... Men husk at pointsene er ikke vigtige det er viden der er vigtig.. :)
Avatar billede Slettet bruger
28. april 2004 - 01:45 #16
Ja - jeg er enig i at point ikke er vigtige, men jeg har før brændt mig lidt ved at give for mange point og dele dem lidt forkert ud. Men skidt :-) Tak for indsatsen.
Avatar billede Slettet bruger
28. april 2004 - 01:45 #17
Lukker
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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