关于DataTable用法的一些总结(有用)

来源:互联网 发布:航天金税盘安装软件 编辑:程序博客网 时间:2024/05/17 08:21

 

1、table显示的样式
newRow["goods_name"] = "<span style=\"color: #FF3300;\">合计:</span>";
如果比如说在后台从数据库读取出来的数据,要在前台灵活以样式显示出来,除了可以在承

载体比如说label添加样式,比如说给gridview的某列定义颜色等等都可以达到效果
但是。如果要灵活的显示的话
-----------------可以在把数据就加上样式代码,然后赋值,比如
 DataRow newRow = dt.NewRow();
 newRow["goods_name"] = "<span style=\"color: #FF3300;\">合计:</span>";
 dt.Rows.Add(newRow);
 GridView1.DataSource = dt;
那么在gridview1中即时不设置列或者什么的属性,依然可以显示出【合计】的颜色样式来
有的时候在很多地方都可以这样,比如给树的text赋值,可以把加上样式代码一起赋值过去

2、DataView 的排序(sort)
一般给gridview绑定的数据源之前可以在sql语句中排序,也可以把读取出来的datatable--

-->dataview,然后dataview.Sort=" id desc";//降序

3、如果要在gridview的最后显示汇总什么的。可以在最后加一个层div,然后在后台给层

div1赋值,加上qtyHtml.Append("<br>");在前台会编译成换行,当然也可以加样式

StringBuilder qtyHtml = new StringBuilder();
                qtyHtml.Append("货币(");
                qtyHtml.Append(SumQtyDataTable.Rows[q]["Currency"].ToString());
                qtyHtml.Append(")汇总:  ");
                qtyHtml.Append(SumQtyDataTable.Rows[q]["Total"].ToString());
                qtyHtml.Append("<br>");
div1.InnerHtml=qtyHtml.ToString();

4、分页也有两种方式,1中是GridView自带的,另一种是在GridView下加一个写在table中的

(见结算系统SubJsDate页面)

5、DataView 的筛选(RowFilter)
DataView SelectP = SetValuesDateTable.DefaultView;
                SelectP.RowFilter = "name='xiaohai'";

6、DataTable的Compute方法和脚注显示合计(前提是把ShowFooter改成true)
GridView2.FooterRow.Cells[c + GridView2.Columns.Count + 1].Text = "合计:" +

GridViewTable.Compute("sum(" + SetValuesDateTable.Rows[c]["Head"].ToString() +

")", "").ToString();
Compute是计算的意思,括号内可以加表达式,如果第二个参数为条件,,相当于sql中的

where写""那么就是满足所有条件
这个聚合函数就是报表或者Excel中常用的函数,比如Sum,Avg等等。对于数据列,

Datatable可以方便的进行计算,比如DataTable.Cumpute(“Sum(列1)”,”列1>0”); 对于

简单的统计功能,这些函数就足够用了。(其他提供的函数有min,max,count,求方差,标

准偏差等等)。这个功能常用

7、datatable和dataview的转换是有很多方法的
 1、DataView dv=dt.DefaultView;
 2、DataView dv=new DataView(dt);
 3、DataTable dt=dv.ToTable();


8、datatable的检索(Select)
1 设置查询字符串
2 使用Select方法获取到所有满足条件的数据行对象数组 (多项查询条件间,用and隔开)
返回的是DataRow

DataRow[] matches = dt.Select("id<'003' and name='名字11'");
string strName = matches[0]["name"].ToString();

9、DataRow赋值给别的datatable
如果
DataTable dtNew = dt.Clone();
for (int i = 0; i < drArr.Length; i++)
{
    dtNew.Rows.Add(drArr[i]);
}
但这样程序就会出错,说该DataRow是属于其他DataTable的,所以不能这么写,可以把
DataTable dtNew = dt.Clone();
for (int i = 0; i < drArr.Length; i++)
{
    dtNew.ImportRow(drArr[i]);
}
这样就完成了。


10、datatable的合并(Merge)
假定有2个DataTable:Dt1 , Dt2。表结构一样
将Dt2接在Dt1后可采用此方法
dt1.Merge(dt2);

11、datatable的过滤重复项
DataTable newTable3 =
dv.ToTable(true, new string[] { "columnA","columnF","columnC" });
过滤掉了columnA,columnF,columnC都重复的项

 

 

 

原创粉丝点击