时隔上篇的2已经好久了,好多个人原因导致自己好久没写了,抱歉
还是接着上一篇写吧
首先我们在上次的那个SubSonicTestDB 数据库上执行下面sql,给学生表添加一个入学日期列
alter table Student add EnterSchoolDate datetime default getdate()
额外技巧: 教大家一个快速输入时间的方法,开始这样,我用搜狗输入法
例如
,在输入中 ,输入sj得到
然后按3,就可以输入当前时间了,如此添加一些测试数据。
开始:
IDataReader dr = new Query(Tables.Student).BETWEEN_AND(Student.Columns.EnterSchoolDate, Convert.ToDateTime("2012-09-01 00:00:00"), DateTime.Now.AddDays(30)).ExecuteReader();
{
Console.WriteLine(dr[ " StudentId "] + \t " + dr[ StudentName StudentHobby "]);
}// http://www.heatpress123.net
其他方式还有很多
IDataReader dr = 30)).AddWhere(Student.Columns.StudentHobby,中国象棋").ExecuteReader();
3.3常用取前几条数据的方法
3.3.1 Top
Query query = new Query(Student");
query.SelectList =Student.Columns.StudentID+ , "+Student.Columns.StudentName + " + Student.StudentHobbyColumn.ToString();
query.OrderBy = OrderBy.Desc(Student.Columns.StudentID);
IDataReader dr = Student.FetchByQuery(query);
当然那个Query你也可以直接写 Query query = new Query("Student").SetTop("10").ORDER_BY("StudentID desc");
可能你会对Query这么麻烦感到烦恼,那我把上期某个例子放一下,不是Query类型的只能FetchByQuery这么局限,感受一下
foreach (DaTarow item in sts.Tables[ 0].Rows)
{
Console.WriteLine(item[ StudentId "] + \t " + item[ StudentName "]);}
3.3.2 Query类型自带的 PageIndex,PageSize属性,我的理解是将结果分页
Query query =
query.PageSize =
8;
IDataReader dr = Student.FetchByQuery(query);
Console.WriteLine(
第一页
");
"]);
}
////////////www.software8.co
Console.WriteLine(
第二页
");
query.PageIndex =
2;
dr= Student.FetchByQuery(query);
"]);
}
效果:
使用sql Server Profiler跟踪可以查看他在内部怎么执行的
这个工具在sqlserver2008 的菜单栏 --”工具“--sql SERVER Profiler,运行,直接下一步即可,存储过程也可以跟踪
①查出张老师名下的学生,返回一个List类型的,如果你想返回更多的信息,建议用其他类型,例如DataSet
foreach (Student item in students)
{
Console.WriteLine( {0} {1} {2}