日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MVC之删除

發布時間:2023/12/3 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC之删除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開發工具與關鍵技術:Visual Studio、MVC 作者:幻奏 撰寫時間:2019.04.17

在頁面的數據表格中,既然有新增,那一定也有刪除吧。那MVC是怎么寫刪除的呢,就讓我來講一下吧。
刪除一般有刪除單條數據和刪除多條數據。相對來說,刪除單條數據比刪除多條的簡單,因為單條數據不需要循環、拼接和分割。單條數據的刪除一般都在數據的后面加一個刪除的按鈕,而批量刪除就只有一個按鈕。刪除單條和批量刪除基本都是一樣的,那么我就只講批量刪除了。
首先我們要在表格上選中要刪除的數據,然后才能刪除。所以,我們先用layui插件里的方法獲取選中行的相關數據,然后再判斷是否選中數據,沒有就提示“請選擇要刪除的數據!”。

//刪除function ShanChu() {var checkStatus = layuiTable.checkStatus('tabTitles');if (checkStatus.data.length > 0) {} else {layer.msg("請選擇需要刪除的數據", { icon: 0, skin: "layui-layer-molv" });}}

選中數據后,我們要if的里面聲明一個變量,然后在后面用for循環拼接它們的ID。如下:

var employeeIds = "";for (var i = 0; i < checkStatus.data.length; i++) {employeeIds += checkStatus.data[i].EmployeeID + ";";//拼接字符串,如:1;2;3;}

因為每個ID后面都會拼接一個分號,所以最后一個ID也會有一個分號。但是我們分割字符串時是根據它后面的分號分割的,如果最后也有一個分號,那么它就會分割多一個空格出來,我們就要想辦法把最后的一個分號給去掉。在這里我們就要用到substring這個方法,它的用法看下面。

employeeIds = employeeIds.substring(0, employeeIds.length - 1);//去掉分號//substring() 方法用于提取字符串中介于兩個指定下標之間的字符。//substring(start,stop) 方法返回的子串包括 start 處的字符,但不包括 stop 處的字符。[0,studentIds.length-1)

去掉最后的分號后,我們就要給它拼接提示“你是否要刪除多少條信息?”,并用post請求控制器,注意:傳過去的ID要一樣。

layer.confirm("您確定要刪除選中的" + checkStatus.data.length + "條員工信息?",{ icon: 3, title: "提示" }, function () {$.post("/Page/delEmployeeIds", { EmployeeIDs: employeeIds }, function (msg) {//刷新表格tabTitles.reload();layer.alert(msg, { icon: 0, title: "提示" });});});

視圖那邊我們就寫完了,然后控制器還是老樣子,先接收視圖傳過來的ID,之后再聲明三個變量,變量strMrg是用來提示文本的,其他兩個是用來計算成功或失敗的條數。

然后用if else判斷傳過來的ID是否為null或者為空字符串,是就返回“參數異常!”,不是就進入下面的步驟。

if (!string.IsNullOrEmpty(EmployeeIDs)){}else{strMsg = "參數異常";}

在里面我們就要對拼接好的ID進行分割,并放在自己創建的數組里面,然后循環一個個地刪除。再后面來個提示,成功多少條,失敗多少條。

//對拼接好的id進行分割string[] employeeIds = EmployeeIDs.Split(';'); //{"1","2","3"}foreach (string employeeId in employeeIds)//foreach 循環只適用于數組,并用于遍歷數組中的每個鍵/值對{}strMsg = "總共需要刪除" + employeeIds.Length + "條員工信息!其中成功刪除" + countSuccessDel + "條,失敗" + countFailedDel + "條。";

在foreach循環里面我們要把ID從string類型轉化成int類型,然后用LINQ查詢出相同ID的員工信息后,就刪除它,由于有Single,所以我們要用try {} catch {}捕捉。刪除的核心代碼是:myModels.PW_Employee.Remove(dbEmployee); 中間寫的是它的表,括號里的是它查出來的變量。
不要忘了保存 myModels.SaveChanges(); 還要用上面的變量記錄下成功和失敗的次數。

try{//將string類型的數據轉化為intint EmployeeID = Convert.ToInt32(employeeId);//刪除員工表PW_Employee dbEmployee = (from tbEmployee in myModels.PW_Employeewhere tbEmployee.EmployeeID == EmployeeIDselect tbEmployee).Single();myModels.PW_Employee.Remove(dbEmployee);myModels.SaveChanges();countSuccessDel++;}catch (Exception e){Console.Write(e);countFailedDel++;}

最后用return返回提示到頁面。

return Json(strMsg, JsonRequestBehavior.AllowGet);

刪除大概的寫法就是這樣的,不過你要考慮一下表與表的關系,比如:你把員工表里的ID刪除了,那它的用戶表不就多了一些垃圾數據嗎,所以我們也要把用戶表的信息也一起刪除掉。
那么我上面就沒寫完啦,所以我們還要在刪除員工表的下面寫刪除用戶表。實際是這樣寫的。

//刪除員工表PW_Employee dbEmployee = (from tbEmployee in myModels.PW_Employeewhere tbEmployee.EmployeeID == EmployeeIDselect tbEmployee).Single();myModels.PW_Employee.Remove(dbEmployee);//獲取員工用戶IDint? userId = dbEmployee.UserID;//刪除用戶詳細表PW_UserRoleDetail dbUserRoleDetail = (from tbUserRoleDetail in myModels.PW_UserRoleDetailwhere tbUserRoleDetail.UserID == userIdselect tbUserRoleDetail).Single();myModels.PW_UserRoleDetail.Remove(dbUserRoleDetail);//刪除用戶表PW_User dbUser = (from tbUser in myModels.PW_Userwhere tbUser.UserID == userIdselect tbUser).Single();myModels.PW_User.Remove(dbUser);myModels.SaveChanges();countSuccessDel++;

如果它還與什么表有關聯,自己考慮是否要刪除掉它。MVC的刪除大概就是這樣了,如果有什么寫錯的,麻煩你指出來?(﹒?﹒)?

總結

以上是生活随笔為你收集整理的MVC之删除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。