欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

机房重构——退卡

发布时间:2024/1/8 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 机房重构——退卡 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言:

    关于机房重构实现了几条线之后也能“照着葫芦画瓢”一步步实现自己所需的功能,心态与刚开始敲得时候已经完全不一样了!

    其实上一篇写的是充值,充值和退卡的实现思路基本是一样的但是我充值没有用存储过程,想着退卡的时候用已下存储过程!

功能说明篇:

   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和字符串为空这个问题也是需要注意的!

总结

以上是生活随笔为你收集整理的机房重构——退卡的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。