一步一步挖出Compute
前几天在做结账的时候,对数据表DataGridView控件的单列求和纠结了一番。 '读取充值金额 strSQL = "select sum(addmoney) as AddCash from Recharge_Info where UserID='" & Trim(comboOperatorUsername.Text) & "'And date= '" & Format(Date,"yyyy-mm-dd") & "' And status= '" & "未结账" & "'having sum(addmoney) is not null" Set mrcRecharge = ExecuteSQL(strSQL,MsgText) If mrcRecharge.EOF = True Then txtChargeCash.Text = 0 Else txtChargeCash.Text = mrcRecharge("AddCash").Value '退卡金额 End If 仿照这个,开始我只是简单地像个小白一样像下面这样写: strSql = "Select sum(T_Charge.addMoney) From T_Charge Where UserID=@UserID and Date=@Date and status='False'" Dim parameters As SqlParameter() = {New SqlParameter("@UserID",chargeInfo.UserID),New SqlParameter("@Date",chargeInfo.ReturnCardDate)} '给sql添加参数 dt = help.ExecuteSelectstrSql,CommandType.Text,parameters)
其实开始自己也觉得这样肯定是不行的,但是具体哪儿不对?肯定是求和的sql语句! DataTable.Compute方法: 好了,根据以上信息,得出该sql语句应写成: (D层)strSql = "Select T_Charge.addMoney From T_Charge Where UserID=@UserID and Date=@Date and status='False'" (U层)txtChargeMoney.Text = dtAllChargeMoney.Compute("sum(addMoney)","true").ToString() 那么,解决了单列的求和问题,如果是两列运算之后再求和,该怎么办?如:列a项和列b项之和。 小结:遇到问题还是要耐心找出关键点,编程不是一个“着急的活儿”。不断发现问题,解决问题,并扩展自己的知识,举一反三才是快速学习的有效途径之一。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |