[VB] DataTable 不使用 Compute 做 SUM 運算

摘要:[VB] DataTable 不使用 Compute 做 SUM 運算

在使用DataTable的Compute做SUM運算的時候,

碰到資料庫裡面的欄位是字串形態卻要做加總時該怎麼辦?

以下提供一個方法。

寫一個對row去做加總的方法即可,以下


'運算的地方
        'val =  dt.Compute("SUM(" & colname & ")", True)
        val = RowSum(dt, colname)

 'Row加總方法(DataTable資料,需加總的欄位名稱)
    Private Function RowSum(ByVal dt As DataTable, ByVal colname As String) As Integer
        Dim i As Integer = 0
        For Each row As DataRow In dt.Rows
            If String.IsNullOrEmpty(row(colname).ToString) Then
                '為空值則加0
                i += 0
            ElseIf Not IsNumeric(row(colname).ToString) Then
                '不為數值則加0
                i += 0
            Else
                '取得欄位值做加總
                i += CType(row(colname).ToString, Integer)
            End If
        Next
        Return i
    End Function

 

透過呼叫此方法會將傳近來的DataTable和欄位的名稱參數去使用For Each對此欄做加總。

 

 


以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)