UI层

 <a href="#" onclick="DelData(0);return false;" id="a_del" class="easyui-linkbutton" iconcls="icon-cancel">删除</a>   

UI中js:

  //删除按钮事件
function DelData(id) {
$.messager.confirm('提示', '确认删除?', function (r) {
if (r) {
var selected = "";
if (id <= ) {
$($('#tab_list').datagrid('getSelections')).each(function () {
selected += this.ID + ",";
});
selected = selected.substr(, selected.length - );
if (selected == "") {
$.messager.alert('提示', '请选择要删除的数据!', 'info');
return;
}
}
else {
selected = id;
}
$.post('/DataGrid/GetJson', { "action": "del", "cbx_select": selected }, function (data) {
$.messager.alert('提示', data, 'info', function () { $("#tab_list").datagrid("reload"); });
});
}
});
}

MVC中控制器:

1.action:

  [HttpPost]
public ActionResult GetJson()
{
UserManagerServiceClient client = new UserManagerServiceClient(); string action = string.Empty;
if (Request.Form["action"] != "")
{
action = Request.Form["action"].ToString();
}
switch (action)
{
case "query": //第一次进入页面时查询数据
string JsonString = QueryEmployee(client);
return Content(JsonString.ToString());
case "submit":
string UpdateMsg = UpdateEmployInfo(client);
return Content(UpdateMsg);
case "queryone":
string JsonOneEmployee = QueryOneEmployee(client);
return Content(JsonOneEmployee);
case "del" :
string DelMsg = DelEmployees(client);
return Content(DelMsg);
default:
return Content("");
}

2.DelEmployees()方法:

  /// <summary>
/// 删除员工信息
/// </summary>
/// <param name="client"></param>
/// <returns></returns>
private string DelEmployees(UserManagerServiceClient client)
{
string msg = "删除失败!";
string selectedID = Request.Form["cbx_select"] != "" ? Request.Form["cbx_select"] : "";
if (selectedID != "" && selectedID !="")
{
int delCount = client.DelEmployee(selectedID); // 从服务端返回的删除员工信息的个数
if (delCount > )
{
msg = string.Format("本次共删除了{0}条员工信息!", delCount);
}
} return msg;
}

WCF服务端代码:EF中contains就 好似sql中的in

 /// <summary>
/// 删除员工信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int DelEmployee(string id)
{
int msg = ;
try
{
List<string> strID = id.Split(',').ToList();
List<int> arrayID = strID.ConvertAll(e => int.Parse(e));
using (UserManageDB db = new UserManageDB())
{ using (TransactionScope transaction =new TransactionScope() )
{
foreach (var employee in db.EmployeInfo.Where(e => arrayID.Contains(e.ID)))
{
db.EmployeInfo.Remove(employee);
msg++;
}
db.SaveChanges();
transaction.Complete();
} } return msg;
}
catch (Exception ex)
{
throw ex;
}
}

Entityframework批量删除的更多相关文章

  1. EntityFramework:支持同一事务提交的批量删除数据实现思路

    一切从一段代码说起... 下面一段代码是最近我在对一EF项目进行重构时发现的. protected override void DoRemove(T entity) { this.dbContext. ...

  2. php批量删除

    php批量删除可以实现多条或者全部数据一起删除 新建php文件 显示数据库中内容: <table width="100%" border="1" cell ...

  3. confirm对话框取消后阻止ajax操作、ajax做批量删除

    在做批量删除的时候,需要用confirm弹出一个提示框让用户确认是否删除,点击确定,执行操作,点击取消,取消操作.但是如果使用ajax把选中项的主键值传到处理页面处理时,如果使用下面的方法将confi ...

  4. mybatis批量删除提示类型错误

    一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection="array"时,表名 ...

  5. php链接数据库 批量删除 和 注册审核

    理解 :  hiden   value    session   name="a[]"         1.  form  表单上传的 value=" "值   ...

  6. StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

    前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...

  7. Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]

    [虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...

  8. MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除

    回到目录 说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在 ...

  9. jdbc-批量插入、批量删除、批量更新

    一.JDBC的批量插入 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等.    我用Mysql5.1.5的JDBC driver 分别对三种比较常用的方法做了测试   方法 ...

随机推荐

  1. Hive的Security配置

    为了更好地使用好Hive,我将<Programming Hive>的Security章节取出来,翻译了一下. Hive还是支持相当多的权限管理功能,满足一般数据仓库的使用. Hive由一个 ...

  2. oracle知识点

    创建序列 create sequence a_seq --创建序列名字为 a_seqminvalue 1 -- 最小值为 1maxvalue 99999 --- 最大值为 99999 start wi ...

  3. OLAP 模型

    OLAP分析的基础是多维数据集,按照其数据存储格式的不同可以分为关系型OLAP(Relational OLAP,ROLAP)和多维型OLAP(Multidimensional OLAP,MOLAP). ...

  4. PDF 补丁丁 0.4.1.804 测试版发布:合并文件夹的图片和PDF文件,自由生成多层次书签

    新的测试版增强了合并文件的功能,可以合并文件夹内的图片和PDF文件,还可以在合并文件列表上直接指定与合并文件对应的PDF书签标题.通过拖放文件项目生成多层次的PDF书签.如下图所示: 另外,新的测试版 ...

  5. 让你的WPF程序使用多线程——BackgroundWorker

    在wpf中可以使用许多方法执行异步操作.利用.NET的芳芳就是手动创建一个新的System.Threading.Thread对象,提供一步代码,并使用THread.Start()方法加载代码.这种方法 ...

  6. 设置正确的post数据格式

    之前一直使用苏飞的HttpHelper类来访问网络,用起来一直感觉很爽.使用其工具直接生成访问代码很是方便.直到昨天下午做到需要使用wpf来post两个字段数据到服务器,服务器使用ASP.NET MV ...

  7. bzoj 2132: 圈地计划

    #include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...

  8. setsockopt的作用

    功能描述:        获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项, ...

  9. NOIP2010解题报告

    今天状态不错..1个小时AC了前3题,第四题第一次也拿到了80%的分数,后来换了算法才拿到全部分数.. 第一题: 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原 ...

  10. nuget的小Tips

    1.nuget常用命令 nuget spec -a bin\Debug\DllName.dll -f //根据dll生成.nuspec文件,这样会生成无用的默认标签,比如licenseUrl.tags ...