读书人

给datatable的Compute方法使用min的

发布时间: 2013-08-21 10:42:06 作者: rapoo

给datatable的Compute方法,使用min的问题
object minObject;
minObject = ds.Tables[0].Compute("min(visitdatetime)","");

我的这个visitdatetime字段是日期的“2013/8/1 10:00:07”
为什么我这样查询出来,不是ds里的日期的最小项,请问大侠,应该怎么弄啊?
[解决办法]
refer:

static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("visitdatetime", typeof(DateTime));

DataRow dr = null;
dr = dt.NewRow();
dr["visitdatetime"] = DateTime.Parse("2013/8/1 10:00:07");
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["visitdatetime"] = DateTime.Parse("2013/8/2 10:00:07");
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["visitdatetime"] = DateTime.Parse("2013/7/1 10:00:07");
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["visitdatetime"] = DateTime.Parse("2013/6/1 10:00:07");
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["visitdatetime"] = DateTime.Parse("2013/7/2 10:00:07");
dt.Rows.Add(dr);



object obj = dt.Compute("min(visitdatetime)", "");
Console.WriteLine(obj); //输出 2013/6/1 10:00:07
}


[解决办法]
就可以参考我上面的方法,弄个循环,添加到你建的这个datatable中,不用fill(ds)方法。
[解决办法]
引用:
我想直接把原来的datatable的这个字段直接改成datetime的,可以弄吗,应该怎么弄啊?


datatable里面有数据了,就不能改类型了。
[解决办法]
引用:
我想直接把原来的datatable的这个字段直接改成datetime的,可以弄吗,应该怎么弄啊?

因为你的datatabel 有数据
不能够直接 更改列类型
可以:

DataTable dtResult = new DataTable();
//克隆表结构
dtResult = dt.Clone();//dt 你的原始数据表
//修改列类型
dtResult.Columns["Date"].DataType = typeof(DateTime);
foreach (DataRow row in dt.Rows)
{
dtResult.Rows.Add(row.ItemArray);
}
string cdate = dtResult.Compute("min(Date)", "").ToString();


[解决办法]
Refer:
http://www.cnblogs.com/insus/archive/2013/05/13/3075994.html

读书人网 >asp.net

热点推荐