|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
前几天同学问我学习方向的问题。有点想法,不知道对不对,怕误导同学,现在“开源一下”。注:括号内是我现在整理的时填加上的。<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[i].FindControl("checkbox");if(checkbox.Checked==false){lab_Note.Text="请选择要删除信息";lab_Note.Style.Add("color","red");}else{MessageModel.C_ID=Int32.Parse(GV_class.Rows[i].Cells[3].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[0].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的话,微软把很多工具都封装好了,学起来可能容易一点。 |
|