ASP.NET VB页面仅加载一次或其他方式

ASP.NET VB页面仅加载一次或其他方式,asp.net,vb.net,iframe,postback,pageload,Asp.net,Vb.net,Iframe,Postback,Pageload,我有点不知道该怎么办!我有一个特殊的表单,允许我的客户请求特定产品的报价(由url中的PID定义)。该表单加载在模式对话框和Iframe中。Iframe的src值是通过产品页面上ahref的onclick事件设置的,例如: <div id='basic-modal'><p><br /><br /><a href='#' class='basic' onClick="document.getElementById('ifr').src='quo

我有点不知道该怎么办!我有一个特殊的表单,允许我的客户请求特定产品的报价(由url中的PID定义)。该表单加载在模式对话框和Iframe中。Iframe的src值是通过产品页面上ahref的onclick事件设置的,例如:

<div id='basic-modal'><p><br /><br /><a href='#' class='basic' onClick="document.getElementById('ifr').src='quote/Public/Default.aspx?PID=111'">CLICK ME</a></p></div>

    <div id="basic-modal-content">
        <iframe id="ifr" width="850px" height="600px" frameborder="0" scrolling="no"></iframe>


我正在加载的表单在触发页面加载时执行SQL插入。它也在里面 如果Page.IsPostBack=False,则

由于某种奇怪的原因,页面在加载时会执行两次,而在关闭页面时会执行另一次。。我需要在第一个页面加载时插入SQL,因为返回的值由我的表单使用。有谁能建议一种好方法,使页面加载中的代码只启动一次吗

非常感谢

更新,完整代码:

aspx页

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Public_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="../quoteFront.css" rel="stylesheet" type="text/css" />
<title></title>    
<style type="text/css">
    .style1
    {
        width: 100%;
    }
    .style2
    {
        height: 26px;
    }
    .style5
    {
        width: 299px;
    }
    .style6
    {
        width: 174px;
    }
    .style7
    {
        height: 26px;
        width: 174px;
    }
    .style8
    {
        width: 291px;
    }
    .style9
    {
        height: 26px;
        width: 189px;
    }
    .style10
    {
    }
    .style11
    {
        width: 189px;
    }
    .style12
    {
        width: 191px;
    }
    </style>
</head>
<body>
<form id="form1" runat="server">
<div>
    <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" CombineScripts="false"  >
    </cc1:ToolkitScriptManager>
</div>
<asp:UpdatePanel ID="UpdatePanel3" runat="server"><ContentTemplate>
<asp:Panel ID="Panel2" runat="server">    
<table class="style1">
    <tr>
        <td class="style12">
            First name</td>
        <td class="style5">
            <asp:TextBox ID="txtFirstName" runat="server" Width="300px" 
                AutoCompleteType="FirstName"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="txtFirstName" ErrorMessage="* Required" ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Last name</td>
        <td class="style5">
            <asp:TextBox ID="txtLastName" runat="server" Width="300px" 
                AutoCompleteType="LastName"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                ControlToValidate="txtLastName" ErrorMessage="* Required" ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Company name</td>
        <td class="style5">
            <asp:TextBox ID="txtCompanyName" runat="server" Width="300px" 
                AutoCompleteType="Company"></asp:TextBox>
        </td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td class="style12">
            Email address</td>
        <td class="style5">
            <asp:TextBox ID="txtEmailAddress" runat="server" Width="300px" AutoCompleteType="Email"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
                ControlToValidate="txtEmailAddress" ErrorMessage="* Required" 
                ForeColor="Red"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                ControlToValidate="txtEmailAddress" ErrorMessage=" * Invalid email address" 
                ForeColor="Red" 
                ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Phone number</td>
        <td class="style5">
            <asp:TextBox ID="txtPhoneNumber" runat="server" Width="300px" AutoCompleteType="BusinessPhone"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" 
                ControlToValidate="txtPhoneNumber" ErrorMessage="* Required" 
                ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
</table>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div>
        <table class="style1">
        <tr>
            <td class="style11">
                Quantity required</td>
            <td class="style6">
                <asp:TextBox ID="txtQuantity1" runat="server" AutoPostBack="True"></asp:TextBox>
                <cc1:FilteredTextBoxExtender ID="ftbe" runat="server" FilterType="Numbers" 
                    TargetControlID="txtQuantity1" />
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
                    ControlToValidate="txtQuantity1" 
                    ErrorMessage="* Please enter quantity required" ForeColor="Red"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style11">
                <asp:Label ID="lblDesigninfo" runat="server" Text="Printing info"></asp:Label>
            </td>
            <td class="style6">
                <asp:DropDownList ID="drpDesignInfo1" runat="server" AutoPostBack="True" 
                    DataSourceID="SqlDataSource1" DataTextField="PrintInfoDesc" 
                    DataValueField="ID" AppendDataBoundItems="True">
                    <asp:ListItem></asp:ListItem>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:quotingSystemConnectionString %>" 
                    SelectCommand="SELECT [ID], [PrintInfoDesc] FROM [PrintInfo]">
                </asp:SqlDataSource>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
                    ControlToValidate="drpDesignInfo1" ErrorMessage="* Please select" 
                    ForeColor="Red"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style11">
                <asp:Label ID="lblColoursSideOne1" runat="server" 
                    Text="Colour options first side" Visible="True"></asp:Label>
            </td>
            <td class="style6">
                <asp:DropDownList ID="drpColoursSideOne1" runat="server" Visible="True" 
                    AutoPostBack="True">
                </asp:DropDownList>
            </td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style9">
                <asp:Label ID="lblColoursSideTwo1" runat="server" 
                    Text="Colour options second side" Visible="false"></asp:Label>
            </td>
            <td class="style7">
                <asp:DropDownList ID="drpColoursSideTwo1" runat="server" Visible="false">
                </asp:DropDownList>
            </td>
            <td class="style2">
            </td>
        </tr>
    </table>
</div>
</ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="txtQuantity1" EventName="TextChanged" />
    <asp:AsyncPostBackTrigger ControlID="drpDesignInfo1" 
        EventName="SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger ControlID="drpColoursSideOne1" 
        EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
<div style="text-align: center">Please fill in the above fields before uploading 
artwork.
<br />
When the upload is complete you will get the option to upload additional 
artwork.
                <cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
                    CompleteBackColor="Lime" ErrorBackColor="Red" 
                    OnClientUploadComplete="UploadComplete" OnClientUploadError="uploadError" 
                    OnClientUploadStarted="StartUpload" 
                    onuploadedcomplete="AsyncFileUpload1_UploadedComplete" ThrobberID="Throbber" 
                    UploaderStyle="Modern" UploadingBackColor="#66CCFF" Width="100%" 
                    ClientIDMode="Inherit" />
                                    <asp:Label ID="Throbber" runat="server" Style="display: none">
<img src="../Images/indicator.gif" align="absmiddle" alt="loading" />
</asp:Label><asp:Label ID="lblStatus" runat="server"></asp:Label>
                <br />
<div style="max-height:70px; overflow : auto; ">
                <asp:Label ID="lblUploadList" runat="server" ForeColor="#006600" 
                    Font-Size="Smaller"></asp:Label>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>        
<table class="style1">
        <tr>
            <td class="style10">
                Any aditional info<asp:TextBox ID="txtComments" runat="server" Height="111px" 
                    TextMode="MultiLine" Width="100%"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style8">
                <asp:Button ID="Button1" runat="server" Text="Send Request" Width="100%" 
                    Height="45px" Font-Bold="False" />
            </td>

        </tr>
    </table>

</asp:Panel>
     <br />
<asp:Panel ID="Panel1" runat="server" Visible="False">
    Thank you for requesting a quote. A member of our sales team will be in touch 
    shortly.<br />
    <br />
    <asp:Button ID="btnRequestAnother" runat="server" 
        Text="Request another quote for this product" CausesValidation="False" 
        Height="45px" Width="100%"/>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
    <script type="text/javascript" language="javascript">

        function uploadError(sender, args) {
            document.getElementById("lblStatus").innerHTML = "Failed to upload " + args.get_fileName() + ". Please try again. If problem persistes please email sales@thecleverbaggers.co.uk";
            document.getElementById("Button1").innerHTML = 'Send Request';
        }

        function StartUpload(sender, args) {
            document.getElementById("lblStatus").innerHTML = 'Uploading Started. Depending on your connection speed this can take a very long time. Please wait....';
            document.getElementById("Button1").innerHTML = 'Uploading Started. Please Wait....';
        }

        function UploadComplete(sender, args) {
            var filename = args.get_fileName();
            var contentType = args.get_contentType();
            var text = "Upload Complete, Press Select File to upload more. " //"Size of " + filename + " is " + args.get_length() + " bytes";
            if (contentType.length > 0) {
                text //+= " and content type is '" + contentType + "'.";
            }
            document.getElementById("lblStatus").innerHTML = text;
            document.getElementById("lblUploadList").innerHTML = document.getElementById("lblUploadList").innerHTML + "<br />" + filename + " Uploaded Successfully";
            document.getElementById("Button1").innerHTML = 'Send Request';
        }

</script>


    </form>


</body>

.style1
{
宽度:100%;
}
.style2
{
高度:26px;
}
.style5
{
宽度:299px;
}
.style6
{
宽度:174px;
}
.style7
{
高度:26px;
宽度:174px;
}
.style8
{
宽度:291px;
}
.style9
{
高度:26px;
宽度:189px;
}
.style10
{
}
.style11
{
宽度:189px;
}
.12
{
宽度:191px;
}
名字
姓
公司名称
电子邮件地址
电话号码
所需数量
上传前请填写以上字段
艺术品

上载完成后,您将可以选择上载其他内容 艺术品
有什么传统信息吗
谢谢你要求报价。我们销售团队的一名成员将与您联系 很快。

函数上载错误(发送方,参数){ document.getElementById(“lblStatus”).innerHTML=“未能上载”+args.get_fileName()+”。请重试。如果问题仍然存在,请发送电子邮件sales@thecleverbaggers.co.uk"; document.getElementById(“Button1”).innerHTML='Send Request'; } 函数启动加载(发送器、参数){ document.getElementById(“lblStatus”).innerHTML=“已开始上载。根据连接速度,这可能需要很长时间。请稍候…”; document.getElementById(“Button1”).innerHTML=“已开始上载。请稍候…”; } 函数上载完成(发送方,参数){ var filename=args.get_filename(); var contentType=args.get_contentType(); var text=“上传完成,按选择文件以上传更多。”“+filename+”的“//”大小为“+args.get_length()+”字节”; 如果(contentType.length>0){ text/+/++=”且内容类型为“'+contentType+”; } document.getElementById(“lblStatus”).innerHTML=text; document.getElementById(“lblUploadList”).innerHTML=document.getElementById(“lblUploadList”).innerHTML+“
”+filename+“上传成功”; document.getElementById(“Button1”).innerHTML='Send Request'; }

VB代码:

Imports System.Data
Imports System.IO
Imports System.Data.SqlClient

Partial Class Public_Default
Inherits System.Web.UI.Page
Dim ArtworkID As Integer
Dim customerIDDecrypt As String
Public QuoteID As Integer
Dim UploadedFileList As String
Dim productID As String
'Shared IsFirstTime As Boolean = False


Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    productID = Request.QueryString("PID")
    customerIDDecrypt = "0"

    'If Not Page.IsPostBack AndAlso Not IsFirstTime Then
If Not Page.IsPostBack Then
        Try
            Dim sql As String = "INSERT INTO [Quote] (Status, CreationDate, CreationTime, CustomerID, ProductID, IP)" & _
                "VALUES (@Status, @CreationDate, @CreationTime, @CustomerID, @ProductID, @IP) SELECT SCOPE_IDENTITY()"

            Using cn As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionString")), _
                  cmd As New SqlCommand(sql, cn)

                cmd.Parameters.Add("@Status", SqlDbType.NVarChar).Value = 1
                cmd.Parameters.Add("@CreationDate", SqlDbType.Date).Value = Date.UtcNow.ToLocalTime
                cmd.Parameters.Add("@CreationTime", SqlDbType.Time).Value = Date.UtcNow.ToLocalTime.TimeOfDay
                cmd.Parameters.Add("@CustomerID", SqlDbType.Int).Value = customerIDDecrypt
                cmd.Parameters.Add("@ProductID", SqlDbType.Int).Value = productID
                cmd.Parameters.Add("@IP", SqlDbType.NVarChar).Value = CStr(Request.UserHostAddress())
                cn.Open()
                '//grab the ID of this insert.
                QuoteID = Integer.Parse(cmd.ExecuteScalar().ToString())

                cn.Close()
                'IsFirstTime = True
            End Using
        Catch ex As Exception
            '// do something with this error!
            Response.Write(ex.Message)
        End Try
    End If
End Sub

Protected Sub txtQuantity1_TextChanged(sender As Object, e As System.EventArgs) Handles txtQuantity1.TextChanged
    '//populate colours dependant on quantity
    If txtQuantity1.Text > "" Then
        If txtQuantity1.Text < "100" Then
            'side one
            drpColoursSideOne1.Items.Clear()
            'drpColoursSideOne1.Enabled = True
            drpColoursSideOne1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideOne1.Items.Add(New ListItem("More than one colour", "full"))
            drpColoursSideOne1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideOne1.Visible = True
            'side two
            drpColoursSideTwo1.Items.Clear()
            'drpColoursSideTwo1.Enabled = True
            drpColoursSideTwo1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideTwo1.Items.Add(New ListItem("More than one colour", "full"))
            drpColoursSideTwo1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideTwo1.Items.Add(New ListItem("na", "na"))
        Else
            'side one
            drpColoursSideOne1.Items.Clear()
            'drpColoursSideOne1.Enabled = True
            drpColoursSideOne1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideOne1.Items.Add(New ListItem("Two colours", "2"))
            drpColoursSideOne1.Items.Add(New ListItem("Three colours", "3"))
            drpColoursSideOne1.Items.Add(New ListItem("Four colours", "4"))
            drpColoursSideOne1.Items.Add(New ListItem("Five colours", "5"))
            drpColoursSideOne1.Items.Add(New ListItem("Full colour (eg, photo)", "full"))
            drpColoursSideOne1.Items.Add(New ListItem("I don't know!", "help"))
            'side two
            drpColoursSideTwo1.Items.Clear()
            'drpColoursSideTwo1.Enabled = True
            drpColoursSideTwo1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideTwo1.Items.Add(New ListItem("Two colours", "2"))
            drpColoursSideTwo1.Items.Add(New ListItem("Three colours", "3"))
            drpColoursSideTwo1.Items.Add(New ListItem("Four colours", "4"))
            drpColoursSideTwo1.Items.Add(New ListItem("Five colours", "5"))
            drpColoursSideTwo1.Items.Add(New ListItem("Full colour (eg, photo)", "full"))
            drpColoursSideTwo1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideTwo1.Items.Add(New ListItem("na", "na"))
        End If
    Else
        'nothing
    End If
End Sub

Protected Sub drpDesignInfo1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles drpDesignInfo1.SelectedIndexChanged
    If drpDesignInfo1.SelectedValue = "1" And txtQuantity1.Text > "0" Then
        lblColoursSideTwo1.Visible = False
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        drpColoursSideTwo1.Visible = False
        drpColoursSideTwo1.Enabled = False
        drpColoursSideTwo1.SelectedValue = "na"
        ' drpColoursSideTwo1.Items.Remove(New ListItem("Same as the first side", "same"))
    ElseIf drpDesignInfo1.SelectedValue = "3" And txtQuantity1.Text > "0" Then
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        lblColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Enabled = True
        ' drpColoursSideTwo1.Items.Remove(New ListItem("Same as the first side", "same"))
    ElseIf drpDesignInfo1.SelectedValue = "2" And txtQuantity1.Text > "0" Then
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        lblColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Enabled = False
        ' Dim tmpCount2 = drpColoursSideTwo1.Items.Count
        ' If tmpCount2 = 7 Or tmpCount2 = 3 Then
        'drpColoursSideTwo1.Items.Add(New ListItem("Same as the first side", "same"))
        'End If
        drpColoursSideTwo1.SelectedValue = drpColoursSideOne1.SelectedValue
    End If
End Sub
Protected Sub AsyncFileUpload1_UploadedComplete(sender As Object, e As AjaxControlToolkit.AsyncFileUploadEventArgs)
    System.Threading.Thread.Sleep(3000)
    If AsyncFileUpload1.HasFile Then
        'Dim strPath As String = newPath + Path.GetFileName(e.FileName)
        'AsyncFileUpload1.SaveAs(strPath)

        Dim fileName = Path.GetFileName(e.FileName)
        'Dim imageBytes(AsyncFileUpload1.PostedFile.InputStream.Length) As Byte
        'AsyncFileUpload1.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.length)
        Dim imageBytes = AsyncFileUpload1.FileBytes
        'AsyncFileUpload1.FileBytes
        '// now insert this into the database
        Try
            Dim sql As String = "INSERT INTO [UploadedFiles] (CustomerID, FileName, FileSize, FileContent, FileType, FileUploadDate, QuoteID)" & _
                "VALUES (@CustomerID, @FileName, @FileSize, @FileContent, @FileType, @FileUploadDate, @QuoteID) SELECT SCOPE_IDENTITY()"

            Using cn As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionStringLargeTimeout")), _
                  cmd As New SqlCommand(sql, cn)
                cmd.CommandTimeout = "3600"

                cmd.Parameters.Add("@CustomerID", SqlDbType.Int).Value = 1
                cmd.Parameters.Add("@FileName", SqlDbType.NVarChar).Value = fileName
                cmd.Parameters.Add("@FileSize", SqlDbType.NVarChar).Value = AsyncFileUpload1.PostedFile.ContentLength
                cmd.Parameters.Add("@FileContent", SqlDbType.VarBinary).Value = imageBytes
                cmd.Parameters.Add("@FileType", SqlDbType.NVarChar, 50).Value = AsyncFileUpload1.PostedFile.ContentType
                cmd.Parameters.Add("@FileUploadDate", SqlDbType.Date).Value = Date.UtcNow.ToLocalTime
                cmd.Parameters.Add("@QuoteID", SqlDbType.Int).Value = QuoteID

                cn.Open()
                '//grab the ID of this insert.
                ArtworkID = Integer.Parse(cmd.ExecuteScalar().ToString())
                cn.Close()
            End Using
        Catch ex As Exception
            '// do something with this error!
            Response.Write(ex.Message)
        End Try
    End If
End Sub

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    '// Populate the database with remaining information
    Button1.Text = "Please Wait...  Sending Request"
    Dim thisConnection As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionString"))
    'Create Command object
    Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()
    Try
        ' Open Connection
        thisConnection.Open()
        ' 1. Create Command
        ' Sql Update Statement
        Dim updateSql As String = "UPDATE Quote " & _
           "SET Status = '2', FirstName = @FirstName, LastName = @LastName, CompanyName = @CompanyName, Email = @Email, Phone = @Phone, Quantity = @Quantity, DesignInfo = @DesignInfo, CS1 = @CS1, CS2 = @CS2, Comments = @Comments " & _
           "WHERE QuoteID = " & QuoteID
        Dim UpdateCmd As New SqlCommand(updateSql, thisConnection)
        ' 2. Map Parameters
        'UpdateCmd.Parameters.Add("@Status", SqlDbType.Int, "Status")
        UpdateCmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 100, "FirstName")
        UpdateCmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 100, "LastName")
        UpdateCmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 100, "CompanyName")
        UpdateCmd.Parameters.Add("@Email", SqlDbType.NVarChar, 200, "Email")
        UpdateCmd.Parameters.Add("@Phone", SqlDbType.NVarChar, 30, "Phone")
        UpdateCmd.Parameters.Add("@Quantity", SqlDbType.Int, 20, "Quantity")
        UpdateCmd.Parameters.Add("@DesignInfo", SqlDbType.NVarChar, 100, "DesignInfo")
        UpdateCmd.Parameters.Add("@CS1", SqlDbType.NVarChar, 20, "CS1")
        UpdateCmd.Parameters.Add("@CS2", SqlDbType.NVarChar, 20, "CS2")
        UpdateCmd.Parameters.Add("@Comments", SqlDbType.NVarChar, 1000, "Comments")
        ''''''''''''''
        'UpdateCmd.Parameters("@Status").Value = 2
        UpdateCmd.Parameters("@FirstName").Value = txtFirstName.Text
        UpdateCmd.Parameters("@LastName").Value = txtLastName.Text
        UpdateCmd.Parameters("@CompanyName").Value = txtCompanyName.Text
        UpdateCmd.Parameters("@Email").Value = txtEmailAddress.Text
        UpdateCmd.Parameters("@Phone").Value = txtPhoneNumber.Text
        UpdateCmd.Parameters("@Quantity").Value = txtQuantity1.Text
        UpdateCmd.Parameters("@DesignInfo").Value = drpDesignInfo1.SelectedValue
        UpdateCmd.Parameters("@CS1").Value = drpColoursSideOne1.SelectedValue
        Dim CS2 As String
        If drpDesignInfo1.SelectedValue = "1" Then
            CS2 = "na"
        Else
            CS2 = drpColoursSideTwo1.SelectedValue
        End If
        UpdateCmd.Parameters("@CS2").Value = CS2
        UpdateCmd.Parameters("@Comments").Value = txtComments.Text
        'QuoteID
        '''''''''''''''
        UpdateCmd.ExecuteNonQuery()
    Catch ex As SqlException
        ' Display error
        Response.Write("FAIL: " & ex.Message)
    Finally
        ' Close Connection
        thisConnection.Close()
        Panel1.Visible = True
        Panel2.Visible = False
    End Try
End Sub

Protected Sub btnRequestAnother_Click(sender As Object, e As System.EventArgs) Handles btnRequestAnother.Click
    QuoteID = Nothing
    Response.Redirect(Request.RawUrl)
    Panel1.Visible = False
    Panel2.Visible = True
    'IsFirstTime = False
End Sub
Protected Sub drpColoursSideOne1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles drpColoursSideOne1.SelectedIndexChanged
    If drpDesignInfo1.SelectedValue = "2" Then
        drpColoursSideTwo1.SelectedValue = drpColoursSideOne1.SelectedValue
    End If
End Sub
End Class
导入系统数据
导入System.IO
导入System.Data.SqlClient
部分类公共\u默认值
继承System.Web.UI.Page
Dim ArtworkID为整数
Dim customerIDDecrypt作为字符串
公共QuoteID为整数
Dim UploadedFileList作为字符串
将productID设置为字符串
'Shared IsFirstTime As Boolean=False
受保护的子页加载(发送者作为对象,e作为System.EventArgs)处理Me.Load
productID=Request.QueryString(“PID”)
CustomerIDeCrypt=“0”
'如果不是Page.IsPostBack,也不是首次
如果不是Page.IsPostBack,则
尝试
Dim sql As String=“插入[Quote](状态、CreationDate、CreationTime、CustomerID、ProductID、IP)&_
“值(@Status、@CreationDate、@CreationTime、@CustomerID、@ProductID、@IP)选择范围\标识()
将cn用作新的SqlConnection(ConfigurationManager.AppSettings(“quotingSystemConnectionString”)_
cmd作为新的SqlCommand(sql,cn)
cmd.Parameters.Add(“@Status”,SqlDbType.NVarChar).Value=1
cmd.Parameters.Add(“@CreationDate”,SqlDbType.Date)。Value=Date.UtcNow.ToLocalTime
cmd.Parameters.Add(“@CreationTime”,SqlDbType.Time)。Value=Date.UtcNow.ToLocalTime.TimeOfDay
cmd.Parameters.Add(“@CustomerID”,SqlDbType.Int)。Value=customerIDDecrypt
cmd.Parameters.Add(“@ProductID”,SqlDbType.In
static bool IsFirstTime = false;
if(!Page.IsPostBack && !IsFirstTime)
        {
            insertdata();
            IsFirstTime = true;
        }