熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET入門教程 13.4.5 計劃結賬[3]

2013-11-13 12:19:11  來源: .NET編程 

    ()在這個代碼上添加如下代碼
    <%@ Import Namespace=SystemDataSqlClient %>
    <%@ Import Namespace=WroxCommerce %>

    ()保存該設計

    ()轉到Solution Explorer選擇checkoutaspxvb

    ()添加如下後台代碼取代已經位於其中的代碼

 

Imports System

Imports SystemDataSqlClient

Imports WroxCommerce

 

 

Partial Class Checkout

    Inherits SystemWebUIPage

 

    Sub Page_Load(ByVal sender As Object ByVal e As SystemEventArgs) Handles MeLoad

 

        TraceWrite(In Page_Load)

 

        If Not PageIsPostBack Then

            If ProfileCart Is Nothing Then

                NoCartlabelVisible = True

                WizardVisible = False

            End If

 

            TraceWrite(In Page_Load UserIdentityIsAuthenticatedToString())

            If UserIdentityIsAuthenticated Then

                WizardActiveStepIndex =

            Else

                WizardActiveStepIndex =

            End If

        End If

 

    End Sub

 

    Sub chkUseProfileAddress_CheckedChanged(ByVal sender As Object ByVal e As SystemEventArgs)

 

        fill the delivery address from the profile but only if its empty

        we dont want to overwrite the values

        If chkUseProfileAddressChecked AndAlso txtNameTextTrim() = Then

            txtNameText = ProfileName

            txtAddressText = ProfileAddress

            txtCityText = ProfileCity

            txtCountyText = ProfileCounty

            txtPostCodeText = ProfilePostCode

            txtCountryText = ProfileCountry

        End If

 

    End Sub

 

    Sub Wizard_FinishButtonClick(ByVal sender As Object ByVal e As SystemWebUIWebControlsWizardNavigationEventArgs)

 

        Insert the order and order lines into the database

        Dim conn As SqlConnection = Nothing

        Dim trans As SqlTransaction = Nothing

        Dim cmd As SqlCommand

 

 

        Try

            conn = New SqlConnection(ConfigurationManagerConnectionStrings(WroxUnited)ConnectionString)

            connOpen()

 

            trans = connBeginTransaction

 

            cmd = New SqlCommand()

            cmdConnection = conn

            cmdTransaction = trans

 

            set the order details

            cmdCommandText = INSERT INTO Orders(MemberName OrderDate Name Address County PostCode Country SubTotal Discount Total) & _

                             VALUES (@MemberName @OrderDate @Name @Address @County @PostCode @Country @SubTotal @Discount @Total)

            cmdParametersAdd(@MemberName DataSqlDbTypeVarChar )

            cmdParametersAdd(@OrderDate DataSqlDbTypeDateTime)

            cmdParametersAdd(@Name DataSqlDbTypeVarChar )

            cmdParametersAdd(@Address DataSqlDbTypeVarChar )

            cmdParametersAdd(@County DataSqlDbTypeVarChar )

            cmdParametersAdd(@PostCode DataSqlDbTypeVarChar )

            cmdParametersAdd(@Country DataSqlDbTypeVarChar )

            cmdParametersAdd(@SubTotal DataSqlDbTypeMoney)

            cmdParametersAdd(@Discount DataSqlDbTypeMoney)

            cmdParametersAdd(@Total DataSqlDbTypeMoney)

 

            cmdParameters(@MemberName)Value = UserIdentityName

            cmdParameters(@OrderDate)Value = DateTimeNow()

            cmdParameters(@Name)Value = CType(WizardFindControl(txtName) TextBox)Text

            cmdParameters(@Address)Value = CType(WizardFindControl(txtAddress) TextBox)Text

            cmdParameters(@County)Value = CType(WizardFindControl(txtCounty) TextBox)Text

            cmdParameters(@PostCode)Value = CType(WizardFindControl(txtPostCode) TextBox)Text

            cmdParameters(@Country)Value = CType(WizardFindControl(txtCountry) TextBox)Text

            cmdParameters(@SubTotal)Value = ProfileCartSubTotal

            cmdParameters(@Discount)Value = ProfileCartMemberDiscount

            cmdParameters(@Total)Value = ProfileCartTotal

 

            Dim OrderID As Integer

            OrderID = ConvertToInt(cmdExecuteScalar())

 

 

            change the query and parameters for the order lines

            cmdCommandText = INSERT INTO OrderLines(OrderID ProductID Quantity Price) & _

                             VALUES (@OrderID @ProductID @Quantity @Price)

            cmdParametersClear()

            cmdParametersAdd(@OrderID DataSqlDbTypeInt)

            cmdParametersAdd(@ProductID DataSqlDbTypeInt)

            cmdParametersAdd(@Quantity DataSqlDbTypeInt)

            cmdParametersAdd(@Price DataSqlDbTypeMoney)

 

            cmdParameters(@OrderID)Value = OrderID

            For Each item As CartItem In ProfileCartItems

                cmdParameters(@ProductID)Value = itemProductID

                cmdParameters(@Quantity)Value = itemQuantity

                cmdParameters(@Price)Value = itemPrice

 

                cmdExecuteNonQuery()

            Next

 

            commit the transaction

            transCommit()

 

        Catch SqlEx As SqlException

            some form of error rollback the transaction

            and rethrow the exception

            If trans IsNot Nothing Then

                transRollback()

            End If

 

            Log the exception

            Toolslog(An error occurred while creating the order SqlEx)

            Throw New Exception(An error occurred while creating the order SqlEx)

 

            CreateOrderErrorLabelVisible = True

 

            Return

        Finally

            If conn IsNot Nothing Then

                connClose()

            End If

 

        End Try

 

        we will only reach here if the order has been created sucessfully

        so clear the cart

        ProfileCartItemsClear()

 

    End Sub

 

    Sub Wizard_NextButtonClick(ByVal sender As Object ByVal e As SystemWebUIWebControlsWizardNavigationEventArgs)

 

        TraceWrite(next: CurrentStep eCurrentStepIndexToString())

 

        If eCurrentStepIndex = Then

 

            Dim l As SystemWebUIWebControlsLogin = CType(WizardFindControl(Login) Login)

 

            If MembershipValidateUser(lUserName lPassword) Then

                FormsAuthenticationSetAuthCookie(lUserName lRememberMeSet)

 

                eCancel = False

            Else

                TraceWrite(lUserName lPassword)

                lInstructionText = Your login attempt was not successful Please try again

                lInstructionTextStyleForeColor = SystemDrawingColorRed

 

                eCancel = True

            End If

        Else

            If Not UserIdentityIsAuthenticated Then

                eCancel = True

                WizardActiveStepIndex =

            End If

        End If

 

    End Sub

 

    Protected Sub Wizard_ActiveStepChanged(ByVal sender As Object ByVal e As SystemEventArgs) Handles WizardActiveStepChanged

 

        If Not UserIdentityIsAuthenticated Then

            TraceWrite(step changed not authenticated returning to step )

            WizardActiveStepIndex =

        End If

 

    End Sub

 

End Class

[]  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15651.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.