若相依 发表于 2015-1-16 22:20:05

ASP.NET编程:ASP.NET使用静态构建语句完成高效批量删...

前几天同学问我学习方向的问题。有点想法,不知道对不对,怕误导同学,现在“开源一下”。注:括号内是我现在整理的时填加上的。<p>网站中的批量删除很罕见,出格是对在gridview中做批量删除。我们一样平常的做法是轮回到勾选的就挪用历程间接删除。如许的话团体以为效力不是很高,假如是上百上千的数据要删除,那就得挪用试行上百次。实在我们能够使用静态构建删除语句举行高效批量删除,不管你选几要删除的数据,只需挪用试行一次。



底下写的存储历程删除语句与上图有关,上图是罕见的在gridview中做批量删除。利用存储历程:
---------------------------------------------------------------------------------------/**linsen*功效申明:静态构建SQL语句之删除*编写日期:2010年9月27日**/---------------------------------------------------------------------------------------dropprocedureproc_DeleteMessagegocreateprocedureproc_DeleteMessage(@conditionvarchar(500)--删除前提(多个))asbegindeclare@sqlvarchar(200)--静态构建删除语句select@sql="DeletefromMessageInfowhere"+@condition--试行语句exec(@sql)endgo在SQL查询剖析器上挪用该历程:(传进的前提是独一标识列名和所选中的值)
execproc_DeleteMessage"MessageID=240orMessageID=241orMessageID=242..."在SQL挪用看不太分明,我们来看下Web中的前台挪用与试行。
//删除按钮单击事务protectedvoidLBtn_Del_Click(objectsender,EventArgse){StringBuildersb=newStringBuilder();for(inti=0;i<GV_class.Rows.Count;i++){CheckBoxcheckbox=(CheckBox)GV_class.Rows.FindControl("checkbox");if(checkbox.Checked==false){lab_Note.Text="请选择要删除信息";lab_Note.Style.Add("color","red");}else{MessageModel.C_ID=Int32.Parse(GV_class.Rows.Cells.Text.Trim());//选中的独一标识列值sb.Append("MessageID=");sb.Append(MessageModel.C_ID);sb.Append("or");}}sb.Append("MessageID=null");MessageModel.SQLSTR=sb.ToString();//静态的前提语句传给实体intj=DeleteClass(MessageModel);//.....}///<summary>///删除信息///</summary>///<paramname="MeModel"></param>///<returns></returns>publicintDeleteClass(MessageModelMeModel){introwsAffected;SqlParameter[]parameter={newSqlParameter("@sqlstr",SqlDbType.Int)};parameter.Value=MeModel.SQLSTR;DbHelperSQL.RunIntProcName("proc_DeleteMessage",outrowsAffected,parameter);returnrowsAffected;}在Web前台静态构建并挪用历程时我们必要注重几点:
1、我们勾选的列一样平常都是主键独一标识列,依据它举行删除。
2、假如你的主键是字符串不是整形,那末下面必要修改一下sb.Append("MessageID="");sb.Append(MessageModel.C_ID);
sb.Append(""or");只是多个单引号。
3、在轮回完后注重加上sb.Append("MessageID=null");停止。团体以为主键不成能空的,以是这个前提扫除。不加的静态语句前面多个个or;
可是万万别在前提中加or1=1;那样不论几都建立,会被全部数据删除。
4、把构建的语句用参数传进,作为删除前提。
以上若有其他高效批量删除数据的办法,但愿贴出来和人人一同会商和分享。
原文链接:http://www.ckuyun.com/lsyfg/archive/2010/12/28/1919186.html
【编纂保举】
J2EE比较成熟一点,一些比较出名的企业应用软件都是基于J2EE的。以后的发展就不好说了。不过java比较烦,学.net的话,微软把很多工具都封装好了,学起来可能容易一点。

若相依 发表于 2015-1-19 08:56:08

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。

山那边是海 发表于 2015-1-24 15:48:49

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

活着的死人 发表于 2015-2-2 06:36:28

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!

愤怒的大鸟 发表于 2015-2-7 17:22:21

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。

简单生活 发表于 2015-2-22 20:10:29

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

因胸联盟 发表于 2015-3-7 02:03:46

ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。

冷月葬花魂 发表于 2015-3-14 07:52:57

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

精灵巫婆 发表于 2015-3-21 01:26:22

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
页: [1]
查看完整版本: ASP.NET编程:ASP.NET使用静态构建语句完成高效批量删...