Hejsan skulle tro att det har med While DBReader.Read() att göra.Han går nog ett steg förlångt. Misstänker också att det har med DBReader att göra. Har sökt överallt men inte hittat någon lösning på detta. Är lite tveksam till att du ska använda Kundvagn.ARtikelNummer osv. Testa om detta fungerar bättre: Tackar, gjorde som du sa och nu fungerar det perfekt.Hjälp med att hämta info från accessdatabas
Jag har hittat ett exempel på en sida som jag försöker modifiera. Men det vill sig inte riktigt
Detta är felmeddeladet jag får:
System.IndexOutOfRangeException: Kundvagn.ArtikelKvantitet
Line 96: ItemNumber = DBReader("Kundvagn.ArtikelNummer")
Line 97: ItemName = DBReader("Benämning")
Line 98: ItemQuantity = DBReader("Kundvagn.ArtikelKvantitet")
Line 99: ItemPrice = DBReader("Utpris")
Line 100: ItemAmount = ItemQuantity * ItemPrice
Stack Trace:
[IndexOutOfRangeException: Kundvagn.ArtikelKvantitet]
System.Data.Common.FieldNameLookup.GetOrdinal(String fieldName) +55
System.Data.OleDb.OleDbDataReader.GetOrdinal(String name) +61
System.Data.OleDb.OleDbDataReader.get_Item(String name) +10
ASP.Order_aspx.Page_Load() in c:\inetpub\wwwroot\Order.aspx:98
System.Web.Util.ArglessEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +10
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +29
System.Web.UI.Page.ProcessRequestMain() +724
Jag har en tabell som heter Kundvagn och en som heter Artiklar i en Accessdatabas
Kundvagn består av fyra kolumner. OrderNummer(Text), Orderdatum(Datum/Tid), ArtikelNummer(Text) och ArtikelKvantitet(Tal).
Om man kör koden när tabellen Kundvagn är tom fungerar den, men om man lagt till en vara i kundvagnen fungerar den inte.
Kan någon försöka förklara varför detta fel uppstår. Eller komma med ideér.
Tacksam för all hjälp
Jesper
<Code>
<%@ Page Language=VB Debug="true"%>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Web.Mail" %>
<%@ Import Namespace="System.Data" %>
<SCRIPT runat="server">
Dim DBConnection As OleDbConnection
Dim DBCommand As OleDbCommand
Dim DBReader As OleDbDataReader
Dim SQLString As String
Dim MerchantID As String
Dim CustomerID As String
Dim OrderAmount As String
Dim Namn As String
Dim Adress As String
Dim Stad As String
Dim EmailAddress As String
Dim EmailBody As String
Dim OrderNummer As String
Dim Email As MailMessage
Dim ItemNumber As String
Dim ItemName As String
Dim ItemPrice As Double
Dim ItemQuantity As Double
Dim ItemAmount As Double
Dim OrderTotal As Double
Dim OrderShipping As Double
Sub Page_Load
If Request.Form("Return") = "Återvänd till kundvagn" Then
Response.Redirect("Kundvagn.aspx")
End If
'-- Capture information from credit card return
MerchantID = Request.Form("ReturnMerchantID")
CustomerID = Request.Form("ReturnCustomerID")
OrderAmount = Request.Form("ReturnOrderAmount")
Namn = Request.Form("ReturnName")
Adress = Request.Form("ReturnAddress")
Stad = Request.Form("ReturnCity")
EmailAddress = Request.Form("ReturnEmail")
'-- Send email confirmation of order
Email = New MailMessage()
Email.To = EmailAddress
Email.From = "test@test.se"
Email.Subject = "Order " & CustomerID & " Confirmation"
EmailBody = ""
EmailBody &= "<html>"
EmailBody &= "<body>"
EmailBody &= "<span style=""font-size:14pt; font-weight:bold"">"
EmailBody &= "Test.se"
EmailBody &= "</span><br>"
EmailBody &= "<span style=""font-size:12pt; font-weight:bold"">"
EmailBody &= "Beställning"
Emailbody &= "</span><br><br/>"
EmailBody &= "Datum: " & Today & "<br/>"
EmailBody &= "Order Nr.: " & CustomerID & "<br/>"
EmailBody &= "<br/>"
EmailBody &= Namn & "<br/>"
EmailBody &= Adress & "<br/>"
EmailBody &= Stad & "<br/>"
EmailBody &= "<p>"
EmailBody &= "If you have any questions about your "
EmailBody &= "order, please email us at "
EmailBody &= " "
EmailBody &= "orders@test.se "
EmailBody &= "and reference the order number listed above."
EmailBody &= "</p>"
EmailBody &= "<table border=1 cellpadding=3 style=""border-collapse:collapse"">"
EmailBody &= "<tr>"
EmailBody &= " <th>Artikelnummer</th>"
EmailBody &= " <th>Benämning</th>"
EmailBody &= " <th>Antal</th>"
EmailBody &= " <th>Pris</th>"
EmailBody &= " <th>Amount</th>"
EmailBody &= "</tr>"
OrderTotal = 0
DBConnection = New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Inetpub\wwwroot\databas\test.mdb")
SQLString = "SELECT * FROM Kundvagn INNER JOIN Artiklar " & _
"ON Kundvagn.ArtikelNummer = Artiklar.Artikelnummer " & _
"WHERE OrderNummer = '" & Session("OrderNummer") & "' " & _
"ORDER BY Kundvagn.ArtikelNummer"
DBCommand = New OleDbCommand(SQLString, DBConnection)
DBConnection.Open
DBReader = DBCommand.ExecuteReader()
While DBReader.Read()
ItemNumber = DBReader("Kundvagn.ArtikelNummer")
ItemName = DBReader("Benämning")
ItemQuantity = DBReader("Kundvagn.ArtikelKvantitet")
ItemPrice = DBReader("Utpris")
ItemAmount = ItemQuantity * ItemPrice
OrderTotal += ItemAmount
EmailBody &= "<tr>"
EmailBody &= " <td>" & ItemNumber & "</td>"
EmailBody &= " <td>" & ItemName & "</td>"
EmailBody &= " <td align=right>" & ItemQuantity & "</td>"
EmailBody &= " <td align=right>" & FormatNumber(ItemPrice,2) & "</td>"
EmailBody &= " <td align=right>" & FormatNumber(ItemAmount,2) & "</td>"
EmailBody &= "</td>"
End While
DBReader.Close()
DBConnection.Close()
If OrderTotal > 300.00 Then
OrderShipping = OrderTotal * .02
Else
OrderShipping = 0.00
End If
OrderTotal += OrderShipping
EmailBody &= "<tr>"
EmailBody &= " <td colspan=4 align=right>Frakt</td>"
EmailBody &= " <td align=right>" & FormatNumber(OrderShipping,2) & "</td>"
EmailBody &= "</tr>"
EmailBody &= "<tr>"
EmailBody &= " <td colspan=4 align=right>Totalt:</td>"
EmailBody &= " <td align=right>" & FormatCurrency(OrderTotal) & "</td>"
EmailBody &= "</tr>"
EmailBody &= "</table>"
EmailBody &= "</body>"
EmailBody &= "</html>"
Email.Body = EmailBody
Email.BodyFormat = MailFormat.Html
System.Web.Mail.SmtpMail.SmtpServer = "smtp.bredband.net"
SmtpMail.Send(Email)
Response.Redirect("SalesOrder.aspx")
End Sub
</SCRIPT> </Code>Sv: Hjälp med att hämta info från accessdatabas
Sv:Hjälp med att hämta info från accessdatabas
Sv: Hjälp med att hämta info från accessdatabas
SQLString = "SELECT Kundvagn.ArtikelNummer, Benämning, Kundvagns.ArtikelKvantitet, Utpris FROM Kundvagn INNER JOIN Artiklar " & _
"ON Kundvagn.ArtikelNummer = Artiklar.Artikelnummer " & _
"WHERE OrderNummer = '" & Session("OrderNummer") & "' " & _
"ORDER BY Kundvagn.ArtikelNummer"
ItemNumber = DBReader("ArtikelNummer")
ItemName = DBReader("Benämning")
ItemQuantity = DBReader("ArtikelKvantitet")
ItemPrice = DBReader("Utpris")
/JohanSv:Hjälp med att hämta info från accessdatabas
Dagen är räddad, har varit mycket frustrerad över detta.
Tack igen.