日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DataTable.Compute功能

發布時間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DataTable.Compute功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DataTable.Compute具有這么多的功能

1:聚合函數”Sum()”

2:自由計算表達式“20*30+1

3bool表達式“1=2

4IFF邏輯表達式 IIF(20>1000, 0, 1)”?//還支持IsNullTrimSubString

一個小應用:讓DataTable模擬ExcelFormula功能。

Excel中的Formula功能強大,如果能讓DataTable有類似的功能就好了。大部分事件DataTable只是用作數據載體,其實很少用它做計算。DataTable提供的函數Compute就提供了功能強大的計算功能。

Compute函數的參數就兩個:Expression,和Filter

Expresstion是計算表達式,關于Expression的詳細內容請看這里“http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx”。而Filter則是條件過濾器,類似sqlWhere條件。

1: 這里詳細介紹的就是Expresstion

先看最簡單的用法,使用聚合函數。這個聚合函數就是報表或者Excel中常用的函數,比如SumAvg等等。對于數據列,Datatable可以方便的進行計算,比如DataTable.Cumpute(“Sum(1)”,”1>0”); 對于簡單的統計功能,這些函數就足夠用了。(其他提供的函數有minmaxcount,求方差,標準偏差等等)。這個功能常用,倒也不奇怪。

再看“自由表達式”計算。把數學計算表達式寫成字符串,然后直接投入Compute函數計算,就可以得到計算結果。這樣,動態生成的計算表達式就可以計算出來了。比方說要計算“列1×30+20+2”或者是純粹的數學計算。

出了計算出具體的結果,Compute函數還能進行邏輯計算。比方說這個表達式就能返回falseCompute(“1=2”,”true”); 這個的用法可能想上邊的情形差不多,在自由組裝一些條件的時候可以得到結果。

Excel中,還經常用到的就是LogicTest功能了,可以指定一些邏輯表達式,比如這樣的:“IF(20>1000, 0, 1)”。而這個功能要是放到DataTable中該如何實現呢?也是用Compute,這樣寫就可以了:“IIF(20>1000, 0, 1)”。

DataTable里面如果實現“IF(C102=0,0,C105/C102*30)”就用上邊的這些技術點就可以了。

2:至于第二個參數Filter,就是一個簡單的查詢條件。比如,”true”, “Id>4”, “Name like ’%nd’ and sex=’male’”.

條件不可能很復雜,這些已經比較夠用了。

以前用過的Marge什么的也不錯,還可以作內連接,在數據量小,需要簡單計算的情況下,這些功能很有用。

當然,如果邏輯極其復雜,DT的這點功能就不夠了,還是得自己寫邏輯(即使要實現“IF(C102=0,0,C105/C102*30)”,也是要自己寫一點處理邏輯的,不過比較通用,寫一次就好了)。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的DataTable.Compute功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。