日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机房重构——退卡

發布時間:2024/1/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机房重构——退卡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

? ? 關于機房重構實現了幾條線之后也能“照著葫蘆畫瓢”一步步實現自己所需的功能,心態與剛開始敲得時候已經完全不一樣了!

? ? 其實上一篇寫的是充值,充值和退卡的實現思路基本是一樣的但是我充值沒有用存儲過程,想著退卡的時候用已下存儲過程!

功能說明篇:

? ?1.通過輸入卡號判斷是否有這個卡號

? ?2.若有判斷是否正在上機,沒有的話提示沒有重新輸入卡號再判斷

? ?3.若在上機,提示不能退卡,否則更新退卡表,卡表,和充值表(注冊的時候用充值表)


代碼篇:

? 接口層:

Function Cancelcard(ByVal card As Entity.CardEntity, ByVal cancelinfo As Entity.CancelCardEntity) As DataTableFunction selectcardno(ByVal Line As Entity.LineEntity) As DataTable

? 接下來是D層

Public Class SqlserverCancelCardDAL : Implements IDAL.ICancelCardPrivate sqlhelper As New SQLHelper.sqlHelperPublic Function Cancelcard(card As CardEntity, cancelinfo As CancelCardEntity) As DataTable Implements ICancelCard.CancelcardDim dt As DataTableDim sql As String = "proc_Cancelcard" '用存儲過程Dim sqlparams As SqlParameter() = {New SqlParameter("@cardNo", cancelinfo.cardNo),New SqlParameter("@Date", cancelinfo.CancelDate),New SqlParameter("@Time", cancelinfo.CancelTime),New SqlParameter("@OperatorId", cancelinfo.OperatorID)}dt = sqlhelper.ExecSelect(sql, CommandType.StoredProcedure, sqlparams)Return dtEnd FunctionPublic Function selectcardno(Line As LineEntity) As DataTable Implements ICancelCard.selectcardnoDim table As DataTableDim sql As StringDim paras As SqlParameter() = {New SqlParameter("@cardno", Line.cardNo)}sql = "select * from T_Lineinfo where cardNo=@cardno and offLineDate is null"table = sqlhelper.ExecSelect(sql, CommandType.Text, paras)Return tableEnd FunctionEnd Class

? B層:

Public Function selectcardno(ByVal Line As Entity.LineEntity) As DataTableDim factory As New Factory.CardFactoryDim Icancelcard As ICancelCardDim table As DataTableIcancelcard = factory.cancelcardtable = Icancelcard.selectcardno(Line)Return tableEnd FunctionPublic Function Cancelcard(ByVal card As Entity.CardEntity, ByVal cancelinfo As Entity.CancelCardEntity) As DataTableDim fac As New Factory.CardFactoryDim icancelcard As ICancelCardDim dt As DataTableicancelcard = fac.cancelcarddt = icancelcard.Cancelcard(card, cancelinfo)Return dt


? 外觀:

Public Function selectcardno(ByVal Line As Entity.LineEntity) As DataTableDim ccbll As New BLL.CancelCardBLLDim table As DataTabletable = ccbll.selectcardno(Line)Return tableEnd FunctionPublic Function canclecard(ByVal cancelinfo As CancelCardEntity, ByVal card As CardEntity) As DataTableDim CancleBLL As New BLL.CancelCardBLLDim dt As DataTabledt = CancleBLL.cancelcard(card, cancelinfo)Return dtEnd Function
? U層:

If txtCardNo.Text = "" Or IsNumeric(txtCardNo.Text) = False ThenMsgBox("請輸入卡號,卡號為數字!", vbExclamation, "警告")txtCardNo.Select()txtCardNo.Focus()Exit SubEnd IfDim card As New Entity.CardEntityDim Line As New Entity.LineEntityDim cancelinfo As New Entity.CancelCardEntityLine.cardNo = txtCardNo.Text.Trim()Dim canclefacade As New Facade.CancelCardFacadeDim Rresult As DataTableRresult = canclefacade.selectcardno(Line)If Rresult.Rows.Count > 0 ThenMsgBox("此卡號正在上機,不能進行退卡", , "提示")txtCardNo.Text = ""Elsecancelinfo.cardNo = txtCardNo.Text.Trim()cancelinfo.OperatorID = FrmLogin.txtUserName.Text.Trim()cancelinfo.CancelDate = Date.Now.ToString("yyyy-MM-dd")cancelinfo.CancelTime = DateTime.Now.ToString("HH:mm:ss")Dim ccfacade As New Facade.CancelCardFacadeDim dt As DataTabledt = ccfacade.canclecard(cancelinfo, card)If dt.Rows.Count > 0 Thentxtcash.Text = dt.Rows(0).Item(6)TextBox3.Text = "退卡卡號為:" & cancelinfo.cardNo & vbCrLf & vbCrLf & "退卡金額是:" & txtcash.Text + vbCrLf & vbCrLf & "退卡時間為:" & Now & vbCrLf & vbCrLf & "進行退卡老師是:" & cancelinfo.OperatorIDMsgBox("退卡成功", , "提示")txtCardNo.Text = ""txtcash.Text = ""TextBox3.Text = ""ElseMsgBox("沒有此卡號!", vbExclamation, "警告")txtCardNo.Text = ""txtCardNo.Select()txtCardNo.Focus()End IfEnd If

小結篇:

? 其中關于上機不能退卡一開始這個功能實現不對發現是D層的sql語句寫的有問題:

? 一開始代碼是這樣寫的:

sql = "select * from T_Lineinfo where cardNo=@cardno and offLineDate =''"? 發現執行的結果不對,應改為:

sql = "select * from T_Lineinfo where cardNo=@cardno and offLineDate is null"? null和字符串為空這個問題也是需要注意的!

總結

以上是生活随笔為你收集整理的机房重构——退卡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。