[ASP.NET using vb.net]無尾熊購物網(2010-06-12修正)

添加迴響 2010年6月12日
期末專題DEMO

功能說明

會員->註冊、管理、設權限角色、鎖定帳號、連結帳號(E-Mail)、實作交易處理(同時下很多SQL,確保資料一致性) 產品->分類、內容頁面、設定未來價格、搜尋產品、加入到購物車的特效 資訊安全->驗證碼、輸入錯誤鎖定(註冊的驗證碼)、錯誤頁面顯示(網站預設的)、登入時防止SQL Injection攻擊 購物->購買資訊自動輸入、可依照會員等級給予折扣、可設定取貨、付款方式 系統->設定參數
系統參數
中文名稱 變數名稱
網站名稱 hostname 無尾熊購物網5
網站Logo檔名 logoUrl logo.png
圖片資料夾位址 imageFolderUrl ~/images/
啟用網站維護 enableMaintenance False
網站維護公告 maintenanceNotice 網站正在維護,請稍後再來。
啟用交易程序 enableTransactions True
交易暫停公告 transactionsNotice 本系統交易暫停,請晚點再試。
網站首頁位址 defaultUrl ~/
註冊嘗試次數 regTryTimes 3
啟用註冊嘗試 enableRegTry True
鎖定註冊嘗試失敗者幾分(單位:分) lockFailRegTryTime 30
登入嘗試次數 loginTryTimes 3
最大站上時間 sessionTimeOut 30
訪問人數 visits 72
產品沒有圖像 NoProductImg productNoImage.png
可以自由停止/開放 網站系統、交易...等

作法講解

交易處理

Dim connection As New OleDb.OleDbConnection(SystemSetting.DbConnStr.ConnectionString)
connection.Open()
Dim Transaction As OleDb.OleDbTransaction = connection.BeginTransaction '開始交易程序,不能平行處理(同一次只能進行一次Transaction
Try
Application.Lock()
Dim command As New OleDb.OleDbCommand(" INSERT INTO 人員 ( 密碼, 姓名, 性別, 生日, 手機號碼, 室內電話, 身份證字號 ) " & _
  " VALUES           ( """ & Session("pw") & """," & _
					  """" & NameTextBox.Text & """," & _
					  "" & SexRadioButtonList.SelectedValue & "," & _
					  "CDate(""" & BirthdayTextBox.Text & """)," & _
					  """" & CellPhoneTextBox.Text & """," & _
					  """" & HomePhoneTextBox.Text & """," & _
					  """" & IdentificationCardNumTextBox.Text & """);", connection)
command.Transaction = Transaction
Dim rowNum As Byte = command.ExecuteNonQuery '前面要設定command.Transaction = Transaction
If rowNum <> 1 Then Throw New Exception '如果沒有新增成功,則丟出一個例外
'1[查詢]新增的人員id
command.CommandText = " SELECT 人員.id FROM(人員) WHERE (((人員.身份證字號)=""" & _
					  IdentificationCardNumTextBox.Text & """));"
Dim newUserId = command.ExecuteScalar
'2[新增]E-Mail位址
command.CommandText = " INSERT INTO 電子郵件 (人員id, 電子郵件) " & _
					  " VALUES               (" & newUserId & "," & _
											"""" & EMailTextBox.Text & """);"
'3[查詢]電子郵件id
rowNum = command.ExecuteScalar '執行
command.CommandText = " SELECT id " & _
					  " FROM   電子郵件 " & _
					  " WHERE  人員id=" & newUserId & " AND 電子郵件='" & EMailTextBox.Text & "';"
Dim newEmailId = command.ExecuteScalar '執行
'4[新增]角色對應人
command.CommandText = " INSERT INTO 人員_角色 (人員id) " & _
					  " VALUES               (" & newUserId & ");"
rowNum = command.ExecuteNonQuery '執行
'5[更新]人員的主要電子郵件id
command.CommandText = " UPDATE 人員 " & _
					  " SET 人員.主要郵件id = " & newEmailId & _
					  " WHERE 人員.id=" & newUserId & ";"
rowNum = command.ExecuteNonQuery '執行
Transaction.Commit() '確認這次的交易
resultLabel.Text = "恭喜!您已完成註冊"
Application("memberCount") += 1
'Dim sendResult As Boolean = sendEMail(EMailTextBox.Text, Session("pw"), NameTextBox.Text, Application(HeadTag & "hostname"))
Catch ex As Exception
Transaction.Rollback() '回搠這次的交易
resultLabel.Text = "註冊失敗,請洽管理員"
End Try
SystemSetting.refreshApplication(Application, "memberCount")
Application.UnLock()
End If

系統設定

網站啟動時,會從資料庫中讀取系統參數 資料表,然後,將這些參數寫入Application('sys_變數名稱')中,當網站名稱一改,所有相關使用到網站名稱的物件就會跟著改。

範例檔案

v1.5

下載(download)

v1

下載(download)
  1. 目前沒有回覆!!等你來回覆喔!!
  1. 還沒有 trackbacks

訂閱迴響