仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 836|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之SQL Artisan多表查询和统计

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:47:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
可怜的程序员,还是逃不出移植的命运!sql|统计编写基于几个表的联系关系查询和统计切实其实是件啰嗦的事变,因为基于字符的形貌良多信息难以抽掏出来共用,当其他中央必要这类情形的时分又必需重写。为了不这情形SQLArtisan援用了视图工具,经由过程视图工具形貌数据查询的信息;视图工具有一个最年夜的优点就是承继,能够从一个已有的工具(实体工具或视图工具)承继上去扩大新的查询功效形貌。实践使用中你能够创建一个基本统计视图工具,然后依据情形派生出详细的统计工具(如:依据分歧信息分组,显现那些字段信息等).
上面是一些复杂例程代码:
定单发卖金额统计基本视图工具
///<summary>
///创建一个复杂的定单发卖金额统计类
///</summary>
[TableMap("",TableType.View)]
publicclassOrderStat:HFSoft.Data.ITableView
{
#regionITableView成员
publicvirtualTableGetTable()
{
//TODO:增加OrderV.GetTable完成
returnDBMapping.Orders.INNER(DBMapping.Employees,DBMapping.Employees.EmployeeID)&DBMapping.Orders.INNER(DBMapping.OrderDetails,DBMapping.Orders.OrderID)&DBMapping.OrderDetails.INNER(DBMapping.Products,DBMapping.Products.ProductID);
}
privateDoublemTotalize;
[StatColumn("Quantity*[OrderDetails].UnitPrice*(1-Discount)",StatType.Sum)]
publicDoubleTotalize
{
get
{
returnmTotalize;
}
set
{
mTotalize=value;
}
}
#endregion
}
按雇员分组统计情形承继完成
///<summary>
///按雇员举行分组统计
///</summary>
[TableMap("",TableType.View)]
publicclassEmployeeTotal:OrderStat
{
privateintmEmployeeID;
[ViewColumn("Employees.EmployeeID")]
publicintEmployeeID
{
get
{
returnmEmployeeID;
}
set
{
mEmployeeID=value;
}
}
privatestringmEmployeeName;
[ViewColumn("FirstName+LastName")]
publicstringEmployeeName
{
get
{
returnmEmployeeName;
}
set
{
mEmployeeName=value;
}
}
}
按产物分组统计承继完成
///<summary>
///按产物举行分组统计
///</summary>
[TableMap("",TableType.View)]
publicclassProductTotal:OrderStat
{
privateintmProductID;
[ViewColumn("Products.ProductID")]
publicintProductID
{
get
{
returnmProductID;
}
set
{
mProductID=value;
}
}
privatestringmProductName;
[ViewColumn("ProductName")]
publicstringProductName
{
get
{
returnmProductName;
}
set
{
mProductName=value;
}
}
}
统计时在不变动前提的情形,你只必要加载分歧的形貌范例就可以完成分歧需求的数据查询统计功效。
Expressionexp=newExpression();
exp&=newHFSoft.Data.Mapping.NumberField("year("+DBMapping.Orders.OrderDate.Name+")",null)==1997;
List<EmployeeTotal>empt=exp.List<EmployeeTotal>();
List<ProductTotal>prot=exp.List<ProductTotal>();
联系关系加载相干表信息字段
当必要加载联系关系表相干字段信息时,能够创建一个承继于实体工具的视工具;不外也能够依据完成情形创建一个全新的视图工具。
产物信息视图工具
///<summary>
///产物信息视图工具
///</summary>
[TableMap("",TableType.View)]
publicclassProductsView:Products,HFSoft.Data.ITableView
{
#regionITableView成员
publicvirtualTableGetTable()
{
returnDBMapping.Products.INNER(DBMapping.Categories,DBMapping.Categories.CategoryID)
&DBMapping.Products.INNER(DBMapping.Suppliers,DBMapping.Suppliers.SupplierID);
}
#endregion
privatestringmCategoryName;
[ViewColumn("CategoryName")]
publicstringCategoryName
{
get
{
returnmCategoryName;
}
set
{
mCategoryName=value;
}
}
privatestringmCompanyName;
[ViewColumn("CompanyName")]
publicstringCompanyName
{
get
{
returnmCompanyName;
}
set
{
mCompanyName=value;
}
}
}
Expressionexp=newExpression();
exp&=DBMapping.Suppliers.City=="GuangZhou";
exp.List<ProductsView>();
为了便利显现,产物视图工具引进了产物种别和供给商信息。
以上是经由过程复杂例程先容SQLArtisan多查询统计功效,组件试图把一切数据输入都以实体工具的体例表现来(次要简化会见操纵性);不外SQLArtisan并没有完整撑持一切SQL语句的功效,只是完成了年夜部经常使用的功效。
对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。
简单生活 该用户已被删除
沙发
发表于 2015-1-18 15:21:51 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-22 07:19:25 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
再现理想 该用户已被删除
地板
 楼主| 发表于 2015-1-30 23:43:21 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
不帅 该用户已被删除
5#
发表于 2015-2-6 17:04:25 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
小妖女 该用户已被删除
6#
发表于 2015-2-17 12:56:06 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
老尸 该用户已被删除
7#
发表于 2015-3-5 19:41:03 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
若天明 该用户已被删除
8#
发表于 2015-3-12 12:45:56 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
admin 该用户已被删除
9#
发表于 2015-3-19 22:20:18 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表