mvc Code First执行存储过程进行批量删除

sql创建存储过程:

USE [skeLive]
GO
/****** Object: StoredProcedure [dbo].[pro_DelRFCDetail] Script Date: 12/20/2017 10:46:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[pro_DelRFCDetail]( --创建存储过程
@strid varchar(max) --参数 格式 "1,2,3,5,6"
)
as
declare @temp Table (a varchar(100)) --创建临时表
begin

--把参数@strid分割成int数组并插入临时表@temp
Declare @i Int
Set @strid = RTrim(LTrim(@strid))
Set @i = CharIndex(',',@strid)
While @i >= 1
Begin
Insert @temp Values(Left(@strid,@i-1))
Set @strid = SubString(@strid,@i+1,Len(@strid)-@i)
Set @i = CharIndex(',',@strid)
End
If @strid <> ''
Insert @temp Values (@strid) --插入临时表


delete dbo.RequireFClientDetail where id in (select * from @temp) --执行为删除操作 通过id与临时表中的int数组对照

end

 

前端View加入checkbox全选批量删除

table的标题里加入:

<th style="text-align:center;">
全选
<input type="checkbox" id="checkall" @*onclick="SelectAll(this)"*@ />
</th>    其它的省略,table中的标准写法

table内容行:

@foreach (var item in Model)
{
<tr>

<td style="width:55px;">

@Html.CheckBox(item.id.ToString())
</td>

。。。。

 

 

js代码:

$(document).ready(function()
{
//全选
$("#checkall").click(function () {
// $("[type='checkbox']").attr("checked", $(this).attr("checked")); //不起作用
$("[type='checkbox']").prop("checked",$("#checkall").prop("checked"));
});
var arry = new Array();
$("#delall").click(function () {
//确定至少选择一项
if ($("[type='checkbox']:checked").length == 0)
{
alert("请至少选择一项");
return false;
}

 

var j=0;
var rfcid=@ViewBag.RFC_ID;
$("[id!='checkall']:checked").each(function(){ //原用name= 改为id

var id = $(this).attr("name");
arry[j]=id;
j++;

})
if(arry.length>0){
if(!confirm("选择的记录将被删除,确定吗?")) return false;
var url = "/RequireFClient/DelList2/"+rfcid+"?strid=";
var did="";
for(var i=0;i<=arry.length-1;i++)
{
if(i==arry.length-1)
{
did+= arry[i];
}
else
{
did+= arry[i]+",";
}
}
$.ajax({
type:"Post",
url:url+did,
success:function(data){
if (data == "-1") { //alert("删除错误"); return false;
}
// else $(tr).remove();
}
})

}
alert("删除完成!");
window.location.reload("/RequireFClient/rdList/"+rfcid);

})
});

 

 

Control:

 

[HttpPost]
public ActionResult DelList2(int? id,string strid)
{

var parm = new SqlParameter[]
{
new SqlParameter("@strid", strid)
};
string sql = @"EXEC dbo.pro_DelRFCDetail @strid";
db.Database.ExecuteSqlCommand(sql, parm);

return RedirectToAction("rdlist", new { id=id});
}

 

posted @ 2017-12-20 14:50  沙闻  阅读(350)  评论(0编辑  收藏  举报