DataSet裡怎麼對字段的值求和

2022-11-27 09:27:02 字數 1442 閱讀 6421

我們在使用sql server這些資料庫時,可以輕鬆的通過sum、**er、count等統計出相關結果,那麼,在已經把資料檢索出來的dataset(datatable)中呢?特別是通過web service獲得了dataset,這個時候,可是沒有辦法回頭去修改select語句來獲取這些統計了。那麼在dataset/datatable中是否可以進行統計呢?

答案是肯定的。

在msdn中,有一篇ms推薦的統計方法,就是逐行對資料進行求和統計,這個方法,其實有等於無(或許這個方法只是針對於datagrid求取小計用吧),因為這個方法中採用的是datagrid的itemdatabind事件來對資料進行累加,同我們手動寫**統計沒有什麼區別。

本文介紹乙個簡單的方法,不需要逐條記錄進行計算就可以輕鬆的獲得datatable中的記錄統計結果。這個簡單的方法就是呼叫功能強大的datatable的函式compute。

一、呼叫說明(僅以c#為例,下同):

public object compute(string strexpression,string strfilter)

引數:strexpression:要計算的表示式字串,基本上類似於sql server中的統計表示式

strfilter:統計的過濾字串,只有滿足這個過濾條件的記錄才會被統計

二、呼叫舉例:

以下示例,假設乙個產品銷售表table,描述某商場中各**員銷售的實際記錄,包含欄位為:姓名(name)、性別(***,0為女,1為男)、生日(birthday)、銷售產品的**(proid)、銷售的數量(quantity)、銷售**(price)。

1.統計所有性別為女的銷售員的數量:

"count(*)","***=0");

2.統計所有銷售員中年齡大於20歲的

"count(*)","birthday<'"+today);//today為今天的日期字串

3.統計銷售產品的平均**

"**er(price)","true");

4.統計產品**為1的產品銷售數量:

"sum(quantity)","proid=1");

5.統計所有產品的銷售總金額:

要統計總銷售金額,由於table中不存在某項產品某個**員銷售的金額資料,但我們可以通過quantity*price來獲得。比如:

"sum(quantity*price)","true");

這裡乙個問題是:datatable的統計功能沒有sqlserver強,這個統計是錯誤的,因為compute的統計不具備sum(quantity*price)這樣資料的功能。那怎麼辦呢?

對於這樣複雜資料的統計,我們可以在datatable中建立乙個新的字段來完成,比如amount,同時設定該字段的expression為quantity*price,這樣我們就可以使用統計功能了:

"sum(amount)","true");

試用例項: "sum(price)","true").tostring();

關於《絕對值》的說課稿 掌門1對

各位專家領導 你們好!首先,我對本節教材進行一些分析 一 教材分析 說教材 一 教材所處的地位和作用 本節內容在全書及章節的地位是 絕對值 是七年級數學教材上冊內容。在此之前,學生已學習了有理數,數軸與相反數等基礎內容,這為過渡到本節的學習起著鋪墊作用。絕對值不僅可以使學生加深對有理數的認識,還為以...

看看在職場裡是怎麼混社會的

從銷售經理到hr經理 我的職場日記 第1節我是2000年畢業的大專生,在北方乙個工業大城市生活了二十多年,因為機遇巧合2003年來到了偉大的首都北京。2006年以前都是做銷售,最高做到了小區銷售經理,但是雙魚座ab血型的我不知道是人格 加重還是什麼原因,竟然在提公升小區銷售經理1年後選擇跳槽。而且這...

顏值自評對大學生求職結果顏值歸因的影響研究

李林竹李豔軍 摘要 在如今被認為 看臉 的社會氛圍中,大學畢業生是否也形成找工作要看顏值的求職觀念呢?研究基於內部合理化 利己主義歸因偏差和個人控制感理論構建研究框架,通過506份大學生調查問卷資料進行實證檢驗。結果表明大學生對求職結果的顏值歸因程度集中在中等偏下水平,分布較為分散 顏值自評對顏值歸...