[C#]DataTable常用操作总结_AX

时间:2024.5.13

[C#]DataTable常用操作总结_AX

20xx年x月x日星期一 09:41

【引言】项目中经常使用DataTable,发现有好多东西,需要整理下. protected void Page_Load(object sender, EventArgs e)

{

//①Create a DataTable

DataTable dt = new DataTable("Table_AX");

//②Add columns for DataTable

//Method 1

dt.Columns.Add("column0",

System.Type.GetType("System.String"));

//Method 2

DataColumn dc = new DataColumn("column1",

System.Type.GetType("System.Boolean"));

dt.Columns.Add(dc);

//③Add rows for DataTable

//★Initialize the row

DataRow dr = dt.NewRow();

dr["column0"] = "AX";

dr["column1"] = true;

dt.Rows.Add(dr);

//★Doesn't initialize the row

DataRow dr1 = dt.NewRow();

dt.Rows.Add(dr1);

//④Select row

//Search the second row 如果没有赋值,则用is null来select DataRow[] drs = dt.Select("column1 is null");

DataRow[] drss = dt.Select("column0 = 'AX'");

//⑤Copy DataTable include data

DataTable dtNew = dt.Copy();

//⑥Copy DataTable only scheme

DataTable dtOnlyScheme = dt.Clone();

//⑦Operate one row

//★都是对dt的操作

//Method 1

DataRow drOperate = dt.Rows[0];

drOperate["column0"] = "AXzhz";

drOperate["column1"] = false;

//Method 2

drOperate[0] = "AXzhz";

drOperate[1] = false;

//Method 3

dt.Rows[0]["column0"] = "AXzhz";

dt.Rows[0]["column1"] = false;

//Method 4

dt.Rows[0][0] = "AXzhz";

dt.Rows[0][1] = false;

//⑧Evaluate another DataTable's row to current Datatable dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray);

//⑨Use Rowstate

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //不知道怎么才能使Row的State变为DataRowState.Deleted //More further,怎样设置Row的State

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■ if (dt.Rows[0].RowState == DataRowState.Unchanged)

{

//Your logic

}

//⑩Convert to string

System.IO.StringWriter sw = new System.IO.StringWriter();

System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw); dt.WriteXml(xw);

string s = sw.ToString();

//ⅰ.string convert to DataTable【Doesn't achieve it】

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //没有把string成功转换为DataTable ■■已实现,参见追加■■

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //DataTable dtConvert = new DataTable();

//System.IO.StringReader stream = new

System.IO.StringReader(s);

//System.Xml.XmlReader xtr = new

System.Xml.XmlTextReader(stream);

//dtConvert.ReadXml(xtr);

//ⅱ.Filter DataTable

//It's so strange that the second row has been filtered //the second row show in GridView never

//It means null field will be filter always.

//Filter the all conditions

dt.DefaultView.RowFilter = "column1 <> true";

//dt.DefaultView.RowFilter = "column1 = true";

dt.DefaultView.RowStateFilter = DataViewRowState.Added; //ⅲ.Sort row

//Stupid method

DataRow[] drsss = dt.Select(String.Empty, "column0 DESC , column1 ASC");

//Clever method

dt.DefaultView.Sort = "column0 , column1 ASC";

//ⅳ.Bind DataTable

//绑定的其实是DefaultView

gvTestDataTable.DataSource = dt;

gvTestDataTable.DataBind();

}

【追加】判断一个字符串是否为DataTable的列名

dtInfo.Columns.Contains("AX");

【追加】DataTable与XML的转换

protected void Page_Load(object sender, EventArgs e) {

DataTable dt_AX = new DataTable();

//dt_AX.Columns.Add("Sex", typeof(System.Boolean)); //DataRow dr = dt_AX.NewRow();

//dr["Sex"] = true;

//dt_AX.Rows.Add(dr);

string xml=ConvertBetweenDataTableAndXML_AX(dt_AX); DataTable dt = ConvertBetweenDataTableAndXML_AX(xml); }

public string ConvertBetweenDataTableAndXML_AX(DataTable dtNeedCoveret)

{

System.IO.TextWriter tw = new System.IO.StringWriter(); //if TableName is empty, WriteXml() will throw Exception. dtNeedCoveret.TableName=dtNeedCoveret.TableName.Length==0?"Table_AX":dtNeedCoveret.TableName;

dtNeedCoveret.WriteXml(tw);

dtNeedCoveret.WriteXmlSchema(tw);

return tw.ToString();

}

public DataTable ConvertBetweenDataTableAndXML_AX(string xml) {

System.IO.TextReader trDataTable = new

System.IO.StringReader(xml.Substring(0, xml.IndexOf("<?xml"))); System.IO.TextReader trSchema = new

System.IO.StringReader(xml.Substring(xml.IndexOf("<?xml"))); DataTable dtReturn = new DataTable();

dtReturn.ReadXmlSchema(trSchema);

dtReturn.ReadXml(trDataTable);

return dtReturn;

}【追加】排序的好方法

dt.DefaultView.Sort = "ID ,Name ASC";

dt=dt.DefaultView.ToTable();


第二篇:MATLAB常用函数总结


函数

一.函数查看

help elfun %列出初等函数

help specfun和help elmat %列出高级数学函数

mhelp %高级查看,例如mhelp abs

二.常用函数:

1.基本函数:

abs() %绝对值

sqrt %平方根

exp(n) %e的n次方

sin cos tan %三角函数asinacosatan %反三角函数

log() %自然对数

log10() %常数对数

lcm(x,y) %最小公倍数

gcd(x,y) %最大公约数

round() %四舍五入

floor() %取向负方向的整数

ceil() %取向正方向的整数

fix() %取向0方向的整数

find() %找到逻辑值的向量元素下标

inline() %定义函数,如f=inline('2*x')f =Inline function:f(x) = 2*x quad() %可对inline定义的函数进行数值积分

2.数据类型中用到的函数:

(1)字符串:

定义: exp: a=’hello’

转换: abs(a) %abs将字符串转换为ASC码

ans =104 101 108 108 111

setstr(a) %setstr将ASC码转换为字符串

三.多项式中用到的函数

见笔记1:四.多项式

四.符号表达式中用到的函数

(1)基本:

diff(f,x,2) %微分,函数f对x求二阶导。该函数也可作用于符号矩阵。

int(f,'x',1,3) %积分,函数f对x在区间[1,3]上的定积分。

int(f,'x',’a’,’b’) 在区间[a,b]上的定积分。

int(f,'x') 得到积分后的函数,常数项默认为0.

limit(f,x,a) %求函数f在x趋于a时的值

limit(f,x,a,’left’) %左趋于a,类似的,’right’,右趋于a

symsum(s,v,a,b) %自变量v在[a,b]间取值,对通项s的求和,可用于求数列和级数的和 例:syms k

S=symsum(1/(k*(k+1)),k,1,inf)

S =1

taylor(f,x,10) %f对x的泰勒级数展开至10阶

solve(f,x) %求解f的根x。也可以用作solve(‘1+x=sin(x)’),或解方程组:solve(f1,f2,…,fn) dsolve(‘常微分方程式’,’初始条件’)

%求解常微分方程。用Dy表示y’,用D2y表示y’’

例:y=dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0') y =exp(t)-t

(2)符号表达式的运算函数:

symadd(A,B) %完成A+B的符号加法

symsub(A,B) %减法

symmul(A,B) %乘法

symdiv(A,B) %除法

sympow(F,n) %F的n次方运算

numden(F) %从有理形式转化为分子与分母形式,可用于分式化简,

得到结果用向量形式给出:[分子,分母]

numeric(F) %将F以数值形式表示

compose(f(x),g(x)) %复合成f(g(x))

finverse(f,x) %求f(x)的反函数

sym2poly(F) %将多项式系数转化为向量形式

poly2sym(c) %将向量形式的系数转化为符号多项式

(3)符号表达式的化简:

collect(F) %将表达式F中相同幂次的项合并

expand %将表达式展开

factor %将表达式因式分解

simplify %利用代数上的函数规则对表达式化简,可用于通分

simple ※尝试各种办法对符号多项式化简,并显示化简步骤;

可用[r,how]=simple(f)查看结果r和方法how

五.绘图函数:

1.二维绘图 (1)plot(x,y) %以x为横轴,y为纵轴绘制图形,其中x,y均为矩阵。也可plot(x,y1,x,y2,…) plot(x,y,’r + -’)图形修饰,详见笔记3 ,一 (2)fplot(fun,lims) %fun是所要绘制的函数,可以是函数名,M文件名,或可计算字符串

(3)ezplot() lims=[XMIN XMAX YMIN YMAX],限定绘图空间 fun可以是多个函数,采用如下形式:fplot('[sin(x),cos(x)]',[0,1]) %无需数据准备,直接画出图形。默认绘图区域[-2*pi,2*pi],

也可自行定义绘图区域ezplot(f,xmin,xmax)

%绘制极坐标图,theta为角度向量,tho为幅值向量

(4)polar(theta,rho,选项) 2.三维绘图 (1)plot3(x1,y1,z1,x2,y2,z2,…) %类似于plot函数,绘制三维曲线。详见笔记3 ,二 (2)mesh(x,y,z) %画网格线图

(3)surf(x,y,z) %画网格面图

(4)meshgrid(x,y) %格点化,例如:[X,Y]=meshgrid(x,y)

(5)peaks(n) %系统提供快速测试绘图函数,产生高斯分布矩阵。例如: z=peaks(40);mesh(z);

(6)subplot(n,m,k) %视图窗口分成n行m列个,当前视图放在第k个

(7)view(方位角,仰角) %设定观察三维图形的角度

主视图: view(0,0)

左视图: view(-90,0)

俯视图: view(0,90)

(8)sphere(n) %绘制球面,n越大,精度越高

(9)cylinder(R,n) %绘制柱面,R是柱面各切面圆的半径

(10)hidden on/off %打开/关闭观察三维图形的遮挡效果

(11)colorbar %在三维曲面图旁边绘制一个可以只是高度的彩色条

3.其他绘图函数:

loglog(x,y) %使用对数座标绘图

semilogx %横坐标为对数坐标轴,纵坐标为线性坐标轴

semilogy %横坐标为线性坐标轴,纵坐标为对数坐标轴

fill(x,y,’r’) %绘制实心图,可添加颜色

bar %绘制直方图,可以细分为bar,bar3,barh,bar3h

其中bar和bar3用来绘制二维和三维竖直直方图,barh,bar3h用来绘制水平直方图

例bar(x,y,0.5),若y为m行n列矩阵,则可视化结果分为m组,每组n个垂直柱,直方条宽度是0.5

如bar(x,[1,2,3;4,5,6;7,8,9])

hist %绘制直方图

pie %绘制饼图,例如x=[1,2,3,4,5];explode=[0,0,1,0,1]

%(explode中不为0的元素对应的x中元素会从饼图中突出)

pie(x,explode)

area %绘制面积图

quiver %绘制向量场图

stairs %绘制阶梯图

stem %绘制火柴杆图

errorbar %误差限图,errorbar(x,y,l,u,’选项’)表示以x为横坐标,y为纵坐标,l为误

差上限,u为误差下限绘图,还可以设置线型,颜色选项。

以上函数+3,如stem3(),可绘制相应三维图形

六.程序设计函数:

%见笔记4

更多相关推荐:
护理技能操作总结

为加强对全院护理质量的监控,根据护理质量管理要求,于20xx年x月x日对全院的临床科室护理人员进行护理技术考核,各科室抽考1人,共抽考18人(1个科室缺考),其中__人不达标,达标率为___。各科室抽考的护理人…

猎头操作总结

操作总结【转】-徐红荣展现实力、巧妙宣传;多种渠道、搜集资源;游说人才、精诚所至;调查推荐、预防超前。实力宣传人才库人才库内人才数量的多少是一个猎头公司实力的体现。人才数量越多,猎头公司运作的能力越高,成功率越…

十年快消品操作总结-快速消费品销售技巧

十年快消品操作总结(操作新品“死亡”的诱因)每天都有新品在进入市场,同时每天又有新品由于各种各样的原因在死去,我们说:“幸福的家庭都相似,不幸的家庭各有各的原因”,这句话用到让人欢喜让人忧的新品上似乎更有别样的…

有机实验操作总结

经过一个学期的实验课,我对有机实验的认识也逐步深入。第一堂课的简单玻璃工操作还挺有意思的,用过不少仪器,但自己制作还是第一次。在红辣椒中提取红色素这个实验是第一次接触回流和蒸馏操作,后面的实验也多次重复了这两个…

实践操作总结

都龙镇中心学校20xx-20xx学年秋季学期三—六年级科学实践操作考核总结魏贵福秋去冬来,时间转瞬而过,我校三—六年级科学实践操作考核已结束。本次实践考核的理念是进一步激发学生的思维,通过自主探究的学习活动,再…

实验操作总结

看了最近几年的中考化学题,发现每年都会有一些考察实验操作的题,这些题都是以图象的形式考察的,虽然分数不是很多,但学生也要熟练掌握,那我简单的总结了一下这方面的知识点以及常考的实验例题。酒精灯:火焰温度:外焰>内…

操作总结

一:选股基本面+行业+政策扶持+股价+形态主要注意事项:1:选择有资金关注的股2:筹码集中度高的股3:均线排列形态良好4:指标多头或则将要多头二:操作操作上要注意大盘是否适合操作来决定,减少操作的随意性,考虑到…

VC操作Excel文件编程相关内容总结

VC操作Excel文件编程相关内容总结最近在做个数据库程序,因为有些数据用户要求导出到Excel文件显示(需要报给其他单位)。所以查阅了一下相关的VC的Excel编程操作,总结一下吧:(所有资料来源于网络)利用…

xx年股票投资操作总结的经验

xx年股票投资操作总结的经验操作成功时可以连续性的展开追击,出现连续两次操作失败后一定要停止操作数日冷静思考和调整思路再寻机出手。精神状态不好时坚决不操作,在精神状态不好时操作非常容易出错和出现连续性多次失败;…

电算化操作总结

电算化操作及时间小结1增加操作员:打开系统管理应用程序——权限——操作员——增加2建立账套:打开系统管理应用程序——账套——建立3设置操作权限:打开系统管理应用程序——权限——权限4增加会计科目:打开财务应用程…

关于钢铁设备项目操作总结

主要把握两点:1、时间节点。项目什么时候启动,什么时候设计,什么时候采购?工程什么时候竣工?什么时候投产?2、关键人。这个项目主要谁起作用?关系层次是怎样的?起多大的作用?让其控制一起操作项目(仪表工,仪表主任…

小坝子镇中心学校20xx年度春季学期八班级数学实践操作总结

小坝子镇中心学校20xx年度春季学期八班级数学实践操作总结为了让学生能更好的巩固所学的数学基础知识,进一步激发学生对数学学科的学习兴趣,不断提高学生的数学应用能力,特对本年级学生进行了实践操作测评,现将有关情况…

操作总结(119篇)