Thanks for the reply. I finally did something like that. What I did was create a new page and copied the orderdetails into the new page along with pulling the data from a newly created view that included the information I want to to display for the customer. Then I used a html writer to write the page into the body of the confirming email, I thought this would be a good way of being consistent with how the email and the confirmation page looks.
Here is the code that I used.
Sub Page_Load(Sender As Object, E As EventArgs)
'create a string writer
Dim stringWrite As New System.IO.StringWriter
'create an htmltextwriter which uses the stringwriter
Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)
'Dim OrderIDSent As String = Request.QueryString("OrderId")
Dim OrderIDSent As String = 113
' TODO: Update the ConnectionString and CommandText values for your application
Dim myConnection1 As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim myConnection2 As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim CommandText1 As String = "SELECT CustomerId, OrderId, FullName, EmailAddress, FirstName, MiddleName, Lastname, CompanyName, Address1, Address2, Town, State, Zip, Phone, OrderDate, Shipdate from V_Orders Where OrderID = '" & OrderIDSent & "' order by [OrderId]"
Dim CommandText2 As String = "SELECT ProductId, Quantity, UnitCost, ModelName, CategoryName from V_OrderDetails Where OrderID = '" & OrderIDSent & "' order by [OrderId]"
Dim myCommand1 As New SqlCommand(CommandText1, myConnection1)
Dim myCommand2 As New SqlCommand(CommandText2, myConnection2)
myConnection1.Open()
Dim dr1
dr1 = myCommand1.ExecuteReader(CommandBehavior.CloseConnection)
myConnection2.Open()
Dim dr2
dr2 = myCommand2.ExecuteReader(CommandBehavior.CloseConnection)
''''''''''''''''''''''
dr1.Read()
'While dr1.Read()
Dim strCustomerId As String = dr1("CustomerId").ToString
Dim strEmail As String = dr1("EmailAddress").ToString
Dim strFullName As String = dr1("FullName").ToString
Dim strFirstName As String = dr1("FirstName").ToString
Dim strOrderId As String = dr1("OrderId").ToString
Dim strMiddleName As String = dr1("MiddleName").ToString
Dim strLastName As String = dr1("LastName").ToString
Dim strCompanyName As String = dr1("CompanyName").ToString
Dim strAddress1 As String = dr1("address1").ToString
Dim strAddress2 As String = dr1("address2").ToString
Dim strTown As String = dr1("Town").ToString
Dim strState As String = dr1("State").ToString
Dim strZip As String = dr1("Zip").ToString
Dim strPhone As String = dr1("Phone").ToString
Dim strOrderDate As String = dr1("OrderDate").ToString
Dim strShipDate As String = dr1("ShipDate").ToString
lblFullName.text = dr1("FullName").ToString
lblFirstName.text = strFirstName.ToString
lblMiddleName.text = strMiddleName.ToString
lblLastName.text = strLastName.ToString
lblCompanyName.text = strCompanyName.ToString
lblAddress1.text = strAddress1.ToString
lblAddress2.text = strAddress2.ToString
lblTown.text = strTown.ToString
lblState.text = strState.ToString
lblZip.text = strZip.ToString
lblPhone.text = strPhone.ToString
Dim mail As New MailMessage()
mail.To = Email.text '<--------make a textbox called Email
mail.bcc = Email.text '<-------Email to you letting you know of the order
mail.From = "From email goes here" '<-----can be whatever you want it to look like it's coming from
mail.Subject = "Receipt for your order " & strOrderId '<-----So it sends the Order ID to them
mail.BodyFormat = MailFormat.Html
While dr2.Read()
Dim strProductId As String = dr2("ProductId").ToString
Dim strQuantity As String = dr2("Quantity").ToString
Dim strUnitCost As String = dr2("UnitCost").ToString
Dim strModelName As String = dr2("ModelName").ToString
Dim strCategoryName As String = dr2("CategoryName").ToString
mail.Body = "Customer's Full Name: " & strFullName & "<br>" _
& "First Name: " & strFirstName & "<br>" _
& "Middle Name: " & strMiddleName & "<br>" _
& "Last Name: " & strLastName & "<br>" _
& "Company Name: " & strCompanyName & "<br>" _
& "Address 1: " & strAddress1 & "<br>" _
& "Address 2: " & strAddress2 & "<br>" _
& "Town: " & strTown & "<br>" _
& "State: " & strState & "<br>" _
& "Zip: " & strZip & "<br>" _
& "Phone: " & strPhone & "<br>" _
& "Email: " & strEmail & "<br>" _
& "Order: " & strOrderId & "<br>" _
& "Order Date: " & strOrderDate & "<br>" _
& "Ship Date: " & strShipDate & "<br>" _
& "<TR><TD>" & strProductId & "</TD><TD>" & strQuantity & "</TD></TR>"
End While
' Obtain Order ID from QueryString
'Dim OrderID As Integer = CInt(Request.Params("OrderID"))
Dim OrderID As Integer = OrderIDSent
' Get the customer ID too
'Dim CustomerId As String = User.Identity.Name
Dim CustomerId As String = strCustomerId
' Obtain Order Details from Database
Dim orderHistory As ASPNET.StarterKit.Commerce.OrdersDB = New ASPNET.StarterKit.Commerce.OrdersDB()
Dim myOrderDetails As ASPNET.StarterKit.Commerce.OrderDetails = orderHistory.GetOrderDetails(OrderID, CustomerId)
' if order was found, display it
If Not (myOrderDetails Is Nothing) Then
' Bind Items to GridControl
GridControl1.DataSource = myOrderDetails.OrderItems
GridControl1.DataBind()
' Update labels with summary details
lblTotal.Text = String.Format("{0:c}", myOrderDetails.OrderTotal)
lblOrderNumber.Text = OrderID.ToString()
lblOrderDate.Text = myOrderDetails.OrderDate.ToShortDateString()
lblShipDate.Text = myOrderDetails.ShipDate.ToShortDateString()
detailsTable.RenderControl(htmlWrite)
Dim strHtml = stringWrite.ToString()
mail.Body = strHtml
SmtpMail.SmtpServer = "Put your mail server here" ' <------localhost works if it's on the same as your mail server
SmtpMail.Send(mail)
Else
' otherwise display an error message
MyError.Text = "Order not found!"
detailsTable.Visible = False
End If
End Sub