Avatar billede brynil Nybegynder
27. oktober 2002 - 20:49 Der er 12 kommentarer og
1 løsning

Hjælp til BO

Jeg forstår ikke hvorfor jeg får denne fejl:

'InsertIntoDB.InfoDetails' is not defined.

Er der en venlig sjæl der vil fortælle mig hvor det går galt og hvorfor?
Koden er hér...

Insert.vb:
-----------
Imports System
Imports System.Data
Imports System.Data.OleDb

Namespace InsertIntoDB

Public Class InfoDetails
  Public ItemNumberCB as string
  Public ItemTypeCB as string
  Public ItemProducerCB as string
  Public ItemTitleCB as string
  Public ItemDescriptionCB as string
  Public ItemPriceCB as Integer
  Public ItemQuantityCB as Integer
End Class
Public Class Information
  Public Function InsertInto(oDetails as InfoDetails)

With oDetails
If .ItemNumberCB = " " Then
.ItemNumberCB = "n/a"
End If
If .ItemTypeCB = " " Then
.ItemTypeCB = "n/a"
End If
If .ItemProducerCB = " " Then
.ItemProducerCB = "n/a"
End If
If .ItemTitleCB = " " Then
.ItemTitleCB = "n/a"
End If
If .ItemDescriptionCB = " " Then
.ItemDescriptionCB = "n/a"
End If
If .ItemPriceCB = " " Then
.ItemPriceCB = 0
End If
If .ItemQuantityCB = " " Then
.ItemQuantityCB = 0
End If
End With

Dim objConn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb")
Dim objCmd = New OleDbCommand("ProdInsert", objConn)
objConn.Open()
objCmd.CommandType = CommandType.StoredProcedure
objCmd.ExecuteReader
  try
    catch ex as OleDbException
  throw ex
  finally
objConn.Close
  end try
return true
End Function
END CLASS
End Namespace

insert.aspx:
-------------
<%@ Page language="vb" debug="true" %>

<script runat="server">
Sub Page_Load(obj as object, e as eventargs)
End Sub

Sub InsertInto(obj as object, e as eventargs)
dim oDetails as New InsertIntoDB.InfoDetails

oDetails.ItemNumberCB = tbNumber.text
oDetails.ItemTypeCB = tbType.text
oDetails.ItemProducerCB = tbProducer.text
oDetails.ItemTitleCB = tbTitle.text
oDetails.ItemDescriptionCB = tbDescription.text
oDetails.ItemPriceCB = tbPrice.text
oDetails.ItemQuantityCB = tbQuantity.text

End Sub
</script><html><body>
<form runat="server">
<asp:textbox id="tbNumber" runat="server" /><br>
<asp:textbox id="tbType" runat="server" /><br>
<asp:textbox id="tbProducer" runat="server" /><br>
<asp:textbox id="tbTitle" runat="server" /><br>
<asp:textbox id="tbDescription" runat="server" /><br>
<asp:textbox id="tbPrice" runat="server" /><br>
<asp:textbox id="tbQuantity" runat="server" /><br>

<asp:button id="btSubmit" runat="server" OnClick="InsertInto" Text="Indsæt" />
</form></body></html>

compileret med:

vbc /t:library /out:..\bin\InsertIntoDB.dll /r:System.dll /r:System.Data.dll Insert.vb
Avatar billede odegaard Nybegynder
27. oktober 2002 - 21:03 #1
Prøv efter den første linje i din aspx-fil at skrive følgende:

<%@ Import Namespace="InsertIntoDB" %>
Avatar billede odegaard Nybegynder
27. oktober 2002 - 21:03 #2
Og det skulle have været et svar :-)
Avatar billede odegaard Nybegynder
27. oktober 2002 - 21:04 #3
....og din InsertIntoDB.dll skal forresten ligge i \wwwroot\bin\
Avatar billede brynil Nybegynder
27. oktober 2002 - 21:09 #4
Hvorfor i wwwroot? Jeg har testet andre dll hvor de har ligget i bin i det bibl. jeg bruger. Bibl er oprettet som virtual bibl i iis.
Jeg troede det var underordnet hvor det sku ligge i .NET.
Jeg prøver lige.
Avatar billede brynil Nybegynder
27. oktober 2002 - 21:12 #5
Underordnet - forstået som i et bin bibl. i den erklærede mappe!
men samme fejl - desværre. Kan du se om der er fejl i variabel-erklæringerne?
Avatar billede odegaard Nybegynder
27. oktober 2002 - 21:34 #6
ok, wwwroot var måske lidt misvisende, men jeg mente root af en web-applikation.
Men nu du kalder new i din variabel-erklæring, bør du så ikke også have en new() funktion i din klasse?
Avatar billede brynil Nybegynder
27. oktober 2002 - 21:44 #7
Mmmm - kan du være lidt mere præcis? Det er nyt for mig endnu!
Avatar billede brynil Nybegynder
27. oktober 2002 - 22:11 #8
Der mangler squ noget i koden. Er der ingen der kan/vil hjælpe??
Avatar billede brynil Nybegynder
27. oktober 2002 - 22:13 #9
Sorry Odegaard. Det var ikke for at være uhøflig!
Avatar billede odegaard Nybegynder
27. oktober 2002 - 22:19 #10
Enten fjerner du New i erklæringen eller også tilføjer du en
Public Sub New()
i din klasse.
Det er kun et gæt, men jeg har altid haft brug for new-funktionen, så derfor har jeg faktisk aldrig prøvet uden, og det virker fint for mig.
I MS's eksempler benytter de også New():
http://samples.gotdotnet.com/quickstart/aspplus/doc/businessobjs.aspx
Avatar billede brynil Nybegynder
27. oktober 2002 - 23:06 #11
Jeg har indsat denne i .vb og kompileret den men får samme fejl:

Public Sub New
MyBase.New()
  ItemNumberCB = Nothing
  ItemTypeCB = nothing
  ItemProducerCB = Nothing
  ItemTitleCB = Nothing
  ItemDescriptionCB = Nothing
  ItemPriceCB = Nothing
  ItemQuantityCB = Nothing
End Sub
End Class

Må se på det imorgen. Tak for iaften
Avatar billede brynil Nybegynder
31. oktober 2002 - 18:35 #12
Nu fik jeg tid.
odegaard - 100 pt for hjælpen med bibl. Jeg har stort set kun kørt med virtual dirs i iis og var ikke klar over at der var forskel. Men jeg har heller ikke rigtig beskæftiget mig med bo før. Der er ihvertfald forbindelse (uden fejlmeddelelser), når jeg kører det fra wwwroot.
Derimod opdateres databasen ikke når jeg submitter. Der er ingen problemer når jeg kører sp'en fra access, så den skulle vel fungere?!!
Kan du hjælpe mig lidt på vej er de sidste 100 points også dine.
Jeg har forsøgt med og uden den Sub New du nævnte, men det gør ingen forskel. Er den placeret/formuleret rigtigt?
Avatar billede brynil Nybegynder
31. oktober 2002 - 18:37 #13
Nå - nu tog jeg glæderne på forskud. Men det er 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
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