zoukankan
html css js c++ java
C# 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();
}
查看全文
相关阅读:
解决servlet在web.xml中的路径跳转问题
浅谈上市公司期权
spring 与mybatis 整合总结
学习ssm心得
django中ORM的事务操作
Celery快速入门
vagrant 使用指南
数据库之mysql
python之pip
linux基础
原文地址:https://www.cnblogs.com/henyihanwobushi/p/2953105.html
最新文章
CSSborder制作小三角形
JavaScript数据类型
CSS中元素水平居中和垂直居中的方法
CSS盒模型
【线程安全】ThreadLocal
面向对象编程之Java多态
请记住我
python脚本
利用python操作redis-cluster
ansible自动化运维
热门文章
puppet自动化运维
Redis集群模式部署
python网络编程
mysql主从复制以及读写分离
redis-cluster
WIFI万能钥匙面试引出上线注意事项
Vue中的native修饰符解析
博客开始使用
使Tomcat指向指定的JDK目录
在eclipse的配置文件里指定jdk路径
Copyright © 2011-2022 走看看