黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

System.Data.DataTable計(jì)算功能詳解

系統(tǒng) 2463 0
using System;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
namespace WindowsApplication1
... {
public partial class Form1:Form
... {

public Form1()
... {
InitializeComponent();
}




private void button1_Click( object sender,EventArgse)
... {

// System.Data.DataTable計(jì)算功能詳解,轉(zhuǎn)載請保留以下信息
// 測試環(huán)境vs2005,c#
// 作者:jinjazz
// 作者blog: http://blog.csdn.net/jinjazz/


System.Data.DataTabletable
= new DataTable();


// 計(jì)算常量,可以沒有初始化列
object test = table.Compute( " 1+1 " , "" );
Console.WriteLine(test);
// test=2;

test
= table.Compute( " 1+1 " , " false " );
Console.WriteLine(test);
// test=2;常數(shù)計(jì)算和filter無關(guān)

test
= table.Compute( " abs(1) " , "" );
Console.WriteLine(test);
// test=null,不知道為這個(gè)什么沒有抱錯(cuò),而且返回null,其他的數(shù)學(xué)函數(shù)都會(huì)抱錯(cuò)

test
= table.Compute( " 2%2 " , "" );
Console.WriteLine(test);
// test=0;
// 其他函數(shù)參考下面的計(jì)算列



// 初始化datatale
table.Columns.Add( " id " , typeof ( string ));
table.Columns.Add(
" value " , typeof ( int ));
for ( int i = 1 ;i <= 10 ;i ++ )
... {
System.Data.DataRowdRow
= table.NewRow();
dRow[
" id " ] = " id " + i.ToString();
dRow[
" value " ] = i;
table.Rows.Add(dRow);
}




// test=table.Compute("value+1","true");
/**/ /// /拋出異常,這里必須是聚合函數(shù)



// *************************************支持的聚合函數(shù)********************** //

// 求數(shù)量
test = table.Compute( " count(id) " , " false " );
Console.WriteLine(test);
// test=0;

test
= table.Compute( " count(id) " , " true " );
Console.WriteLine(test);
// test=10;



// 求和
test = table.Compute( " sum(value) " , "" );
Console.WriteLine(test);
// test=55;

// test=table.Compute("sum(id)","");
/**/ /// /拋出異常,這里不能是string


// 平均
test = table.Compute( " avg(value) " , "" );
Console.WriteLine(test);
// test=5;


// 最小
test = table.Compute( " min(value) " , "" );
Console.WriteLine(test);
// test=1;

// 最大
test = table.Compute( " max(value) " , "" );
Console.WriteLine(test);
// test=10;

// 統(tǒng)計(jì)標(biāo)準(zhǔn)偏差
test = table.Compute( " StDev(value) " , "" );
Console.WriteLine(test);
// test=3.02765035409749

// 統(tǒng)計(jì)方差
test = table.Compute( " Var(value) " , "" );
Console.WriteLine(test);
// test=9.16666666666667


// 復(fù)雜計(jì)算
test = table.Compute( " max(value)/sum(value) " , "" );
Console.WriteLine(test);
// test=0.181818181818182

/**/ /* ******************************************計(jì)算列************************ */

System.Data.DataColumncolumn
= new DataColumn( " exp1 " , typeof ( float ));
table.Columns.Add(column);


// 簡單計(jì)算
column.Expression = " value*2 " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=2;

// 字符串函數(shù)
column.Expression = " len(id) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=3;

// 字符串函數(shù)
column.Expression = " len(''+id+'') " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=5;

// 字符串函數(shù)
column.Expression = " len(trim(''+id+'')) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=3;

// 字符串函數(shù)
column.Expression = " substring(id,3,len(id)-2) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=1; // substring的起始字符位置為1不是0

// 類型轉(zhuǎn)換
column.Expression = " convert(substring(id,3,len(id)-2),'System.Int32')*1.6 " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=1.6;

// 相當(dāng)于sqlserver的isnull
column.Expression = " isnull(value,10) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=1;

// 三元運(yùn)算符,相當(dāng)于sqlserver的casewhen
column.Expression = " iif(value>5,1000,2000) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=2000;

// like運(yùn)算符
column.Expression = " iif(idlike'%1',1000,2000) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=1000;

// in運(yùn)算符
column.Expression = " iif(idnotin('id1'),1000,2000) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=2000;

// 嵌套的三元運(yùn)算
column.Expression = " iif(value>5,1000,iif(idlike'%1',4000,2000)) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=4000;


// 客戶端計(jì)算所占總數(shù)的百分比
column.Expression = " value/sum(value) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=0.01818182


// 客戶端計(jì)算差值,比如nba常規(guī)賽的勝場差
column.Expression = " max(value)-value " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=9


// ***********************父子表計(jì)算*************************************/


// 初始化子表,父子表關(guān)系
DataTabletableChild = new DataTable();

tableChild.Columns.Add(
" id " , typeof ( string ));
tableChild.Columns.Add(
" value " , typeof ( int ));

System.Data.DataSetds
= new DataSet();
ds.Tables.Add(tableChild);
ds.Tables.Add(table);
DataRelationrelation
= new DataRelation( " relation " ,table.Columns[ " id " ],tableChild.Columns[ " id " ]);
ds.Relations.Add(relation);

for ( int i = 1 ;i <= 10 ;i ++ )
... {
System.Data.DataRowdRow
= tableChild.NewRow();
dRow[
" id " ] = " id1 " ;
dRow[
" value " ] = i;
tableChild.Rows.Add(dRow);
}



// 計(jì)算子表記錄數(shù)
column.Expression = " count(child(relation).value) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// test=10;



// 計(jì)算父子表的百分比
column.Expression = " value/sum(child(relation).value) " ;
test
= table.Select( " id='id1' " )[ 0 ][ " exp1 " ];
Console.WriteLine(test);
// <
分享到:
評論

System.Data.DataTable計(jì)算功能詳解


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論