机房重构—注册

来源:互联网 发布:深圳市国税开票软件 编辑:程序博客网 时间:2024/05/18 21:44

【前言】

在机房重构的日子里,注册可是我用了好长时间才敲出来的,期间遇到了很多的问题,下面 

【正文】

在注册的时候,要同时处理三个表,Card_Info、Student_Info、Recharge_Info,就要写三个SQL语句。


代码如下:D层

 Public Function AddCard(card As Entity.RegisterCardInfo) As Integer Implements IDAL.RegisterICard.AddCard        Dim sqlHelper As New SqlHelper.SqlHelper        '处理一、 上机卡表        Dim int As New Integer        Dim sql As String        Dim sqlParams As SqlParameter() = {New SqlParameter("@CardNo", card.CardNo),                                          New SqlParameter("@CardStudentNo", card.StudentNo),                                          New SqlParameter("@CardCash", card.Cash),                                          New SqlParameter("@CardType", card.Type),                                          New SqlParameter("@CardDate", card.CardDate),                                          New SqlParameter("@CardTime", card.CardTime),                                          New SqlParameter("@CardIsCancel", card.IsCancel),                                          New SqlParameter("@CardIsCheck", card.IsCheck),                                          New SqlParameter("@CardUserID", card.UserID)}        sql = "Insert  into Card_Info (cardNo,cash ,type ,date ,time ,isCancel,isCheck,userID ,studentNo )values(@CardNo,@CardCash,@CardType,@CardDate,@CardTime,@CardIsCancel,@CardIscheck,@CardUserID,@CardStudentNo)"        'sql = "PROC_Register" '应用存储过程        int = sqlHelper.ExecAddDelUpdate(sql, CommandType.Text, sqlParams)        '处理二、  学生表        Dim sql1 As String = "Update Student_Info set cardNo=@CardNo WHERE studentNo=@CardStudentNo"        Dim int1 As Integer = sqlHelper.ExecAddDelUpdate(sql1, CommandType.Text, sqlParams)        ''处理三、 充值表        Dim sql2 As String = "Insert into ReCharge_Info(cardNo,userID,rechargeCash,date,time)values(@CardNo,@CardUserID,@CardCash,@CardDate,@CardTime)"        Dim int2 As Integer = sqlHelper.ExecAddDelUpdate(sql2, CommandType.Text, sqlParams)        If int <> 0 And int1 <> 0 And int2 Then            int = 1        Else            int = 0        End If        Return int    End Function
SQLHelper层:


解决办法:把上图片中1的位置的代码写到2的位置中,调试一下就会发现1的位置没有走到,直接跳过了,因为参数没有清除,所以下次再用的时候就会报错。


之后又接触了存储过程,又用存储过程写了一遍,发现存储过程真的很好用,减少了很多的代码,很方便。存储过程

【总结】

这个问题其实困扰了我很长时间,今天问了问其他人,终于解决了,有的时候自己发现不了的问题,就要多和别人交流一下,站在巨人的肩膀上。



原创粉丝点击