要怎么样才能实现两张表之间的全部数据转换呢,你可以给数据库的两张表给一列状态,true和false,也可以判断某列数据,看他是否为空

首先,就要在你的视图层上放置两张表,然后声明两张表的表格ID和layuiTable,然后加载初始化两张表,如下图所示

类文件 转 表 mysql 数据库表转换_数据


然后分别监听两张表的行单击事件,如下图所示

类文件 转 表 mysql 数据库表转换_类文件 转 表 mysql_02


然后就可以去控制器查询两张表的数据了

public ActionResult 查询方法(LayuiTablePage layuiTablePage,参数)

{查询到这张表的数据,后面就是根据你的参数连表查询

List linqs = (from tbClaiemd in myModel.B_ConnectBox

join tbManger in myModel.S_Manager on tbClaiemd.ManagerID equals tbManger.ManagerID

。。。。。。

然后这里,如果你给的表的状态,那么你就可以通过where查询这列数据状态为true或者false的数据,如果是是否为空,那么你也可以让他这样查询(where tbClaiemd.ClaimState == null,另外一种查询就写where tbClaiemd.ClaimState != null。又或者是where tbClaiemd.ClaimState == true,那么另外一张表的查询方法就是写where tbClaiemd.ClaimState == false)就是等于的意思,!=就是不等于的意思。一张表的查询的数据为true或者!=null,另外一张表的数据就是false或者

select new ConnectBoxVo{

。。。。。。

}).ToList();

然后这里条件筛选 Lambda表达式 运算符=>,左边是参数(如果有),右边是表达式或者语句

if (EquipmentID > 0)

{ linqs = linqs.Where(m => m.EquipmentID == EquipmentID).ToList();}

。。。。。。

if (!string.IsNullOrEmpty(AreaNumber))

{ linqs = linqs.Where(m => m.AreaNumber.Contains(AreaNumber)).ToList();}

LayuiTableData layuiTableData = new LayuiTableData

{ count=1,

data= linqs };

return Json(layuiTableData, JsonRequestBehavior.AllowGet); }

接着再到下面写数据转换的方法,起始就相当于修改和删除数据库表里面的部分数据,如下

public ActionResult 自定义方法名(string ConnectBoxID,int ManagerID)

{ string strMsg = “failed”;

int countSuccessDel = 0;//记录成功的数据条数

int countFailedDel = 0;//记录失败的数据条数

if (!string.IsNullOrEmpty(ConnectBoxID))

{//对拼接好的id进行分割

string[] ConnectBoxIDs = ConnectBoxID.Split(’;’);

foreach (string connectBoxID in ConnectBoxIDs)

{ try

{//将string类型的数据转化为int

int ConnectBoxId = Convert.ToInt32(connectBoxID);

var dbClaiemd = (from tbClaiemd in myModel.B_ConnectBox

where tbClaiemd.ConnectBoxID == ConnectBoxId

select tbClaiemd).Single();

然后这里就是,让数据里的某条数据,改成true或者false(dbClaiemd.ClaimState = true;

。另外一种就是dbClaiemd.ClaimState = false;)又或者给他添加或者删除数据让他是否为空(dbClaiemd.ManagerID =null;另外一种就是dbClaiemd.ManagerID !=null;)

myModel.Entry(dbClaiemd).State = EntityState.Modified;

myModel.SaveChanges();

countSuccessDel++; }

catch (Exception)

{countFailedDel++;}

}判断语句} else

{判断语句}

return Json(strMsg, JsonRequestBehavior.AllowGet); }

然后再到视图层写全部添加和全部移除方法

全部添加的方法如下

function 自定义方法名() {

先获取页面的数据

var ManagerID = $("#searManagerID").val();

。。。。。。

var AreaNumber = $("#searAreaNumber").val();

if (BureauTowardsID == “” || BureauTowardsID == undefined) {

BureauTowardsID = 0;

} 。。。。。。

if (AreaNumber == undefined) {

AreaNumber = “”;

}

if (ManagerID == 0) {

layer.alert(“请选择数据后添加认领!”, { icon: 0, title: “提示” });

return; }

$.post(“控制器写的第二种查询方法名”, {

第二种就是上面写的查询数据为false或者null的数据的查询方法
ManagerID: ManagerID,
。。。。。。
AreaNumber: AreaNumber },
function (data) {
var datas = data.data;
var Yet = “”;
接着for循环一遍
for (var i = 0; i < datas.length; i++) {
Yet += datas[i].ConnectBoxID + “;”;}
Yet = Yet.substring(0, Yet.length - 1);
layer.confirm(“您确定要添加认领” + datas.length + “条数据吗?”, { icon: 3, title: “提示” }, function () {
$.post(“控制写的第一种添加方法名”, {
第一种添加方法就是上面说的把false改成true,数据为空的添加获取到的数据的方法
ConnectBoxID: Yet,
ManagerID: ManagerID
}, function (msg) {
刷新两张表格
第一个表格id.reload();
第二个表格id.reload();
layer.alert(msg, { icon: 0, title: “提示” }); }); });})}
然后下面演示一下全部添加的方法,如下图为最开始的样子,ManagerID为null,ClaimState为false

类文件 转 表 mysql 数据库表转换_类文件 转 表 mysql_03


类文件 转 表 mysql 数据库表转换_自定义_04


通过上面的下拉框获取到数据再点击全部添加,得到如下,ManagerID变成了获取到的数据的ID,ClaimState变成了true

类文件 转 表 mysql 数据库表转换_数据_05


类文件 转 表 mysql 数据库表转换_方法名_06


下面再到视图层写全部移除的方法
function 自定义方法名() {
获取数据
var ManagerID = $("#searManagerID").val();
……
var AreaNumber = $("#searAreaNumber").val();
if (ManagerID == “” || ManagerID == undefined) {
ManagerID = 0; } ……
if (AreaNumber == undefined) {
AreaNumber = “”;}
$.post(“控制器写的第一种查询方法名”, {
就是查询某条数据!=null和状态true的方法

ManagerID: ManagerID,

AreaNumber: AreaNumber },

function (data) {

var datas = data.data;

var yet = “”;

然后这里for循环一遍凭借字符串

for (var i = 0; i < datas.length; i++) {

yet += datas[i].ConnectBoxID + “;”; }

yet = yet.substring(0, yet.length - 1);

layer.confirm(“您确定要删除认领” + datas.length + “条数据吗?”, { icon: 3, title: “提示” }, function () {

$.post(“控制器写的第二种移除方法名”, { ConnectBoxID: yet }, function (msg) {

就是上面控制器说的把数据删除变成null,true变成false的方法

刷新两张表格

第一个表格id.reload();

第二个表格id.reload();

layer.alert(msg, { icon: 0, title: “提示” }); });}); }) }

这样全部移除就写完了,下面演示一遍,点击全部删除得到如下,数据库所有数据的ManagerID变成了null,所有的ClaiState变成false

类文件 转 表 mysql 数据库表转换_自定义_07


类文件 转 表 mysql 数据库表转换_数据_08