private void dgvDoorCamera_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { if (e.ColumnIndex == 2) { bool enable = (bool)dgvDoorCamera.Rows[e.RowIndex].Cells[2].Value; DoorCamera dc = (DoorCamera)dgvDoorCamera.Rows[e.RowIndex].Tag; CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_DOOR_CAMERA dcBll = new Maticsoft.BLL.SMT_DOOR_CAMERA(); Maticsoft.Model.SMT_DOOR_CAMERA dcModel = new Maticsoft.Model.SMT_DOOR_CAMERA() { DOOR_ID = dc.DOOR_ID, CAMERA_ID = dc.CAMERA_ID, ENABLE_CAP = !enable }; dcBll.Update(dcModel); this.Invoke(new Action(() => { dgvDoorCamera.Rows[e.RowIndex].Cells[2].Value = dcModel.ENABLE_CAP; })); } catch (System.Exception ex) { log.Error("更新门禁相机关系异常:", ex); WinInfoHelper.ShowInfoWindow(this, "更新门禁相机关系异常:" + ex.Message); } }); waiting.Show(this); } } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(Maticsoft.Model.SMT_DOOR_CAMERA model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update SMT_DOOR_CAMERA set "); strSql.Append("ENABLE_CAP=@ENABLE_CAP"); strSql.Append(" where DOOR_ID=@DOOR_ID and CAMERA_ID=@CAMERA_ID "); SqlParameter[] parameters = { new SqlParameter("@ENABLE_CAP", SqlDbType.Bit, 1), new SqlParameter("@DOOR_ID", SqlDbType.Decimal, 9), new SqlParameter("@CAMERA_ID", SqlDbType.Decimal, 9) }; parameters[0].Value = model.ENABLE_CAP; parameters[1].Value = model.DOOR_ID; parameters[2].Value = model.CAMERA_ID; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 增加一条数据 /// </summary> public bool Add(Maticsoft.Model.SMT_DOOR_CAMERA model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into SMT_DOOR_CAMERA("); strSql.Append("DOOR_ID,CAMERA_ID,ENABLE_CAP)"); strSql.Append(" values ("); strSql.Append("@DOOR_ID,@CAMERA_ID,@ENABLE_CAP)"); SqlParameter[] parameters = { new SqlParameter("@DOOR_ID", SqlDbType.Decimal, 9), new SqlParameter("@CAMERA_ID", SqlDbType.Decimal, 9), new SqlParameter("@ENABLE_CAP", SqlDbType.Bit, 1) }; parameters[0].Value = model.DOOR_ID; parameters[1].Value = model.CAMERA_ID; parameters[2].Value = model.ENABLE_CAP; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_DOOR_CAMERA DataRowToModel(DataRow row) { Maticsoft.Model.SMT_DOOR_CAMERA model = new Maticsoft.Model.SMT_DOOR_CAMERA(); if (row != null) { if (row["DOOR_ID"] != null && row["DOOR_ID"].ToString() != "") { model.DOOR_ID = decimal.Parse(row["DOOR_ID"].ToString()); } if (row["CAMERA_ID"] != null && row["CAMERA_ID"].ToString() != "") { model.CAMERA_ID = decimal.Parse(row["CAMERA_ID"].ToString()); } if (row["ENABLE_CAP"] != null && row["ENABLE_CAP"].ToString() != "") { if ((row["ENABLE_CAP"].ToString() == "1") || (row["ENABLE_CAP"].ToString().ToLower() == "true")) { model.ENABLE_CAP = true; } else { model.ENABLE_CAP = false; } } } return(model); }
/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_DOOR_CAMERA GetModel(decimal DOOR_ID, decimal CAMERA_ID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 DOOR_ID,CAMERA_ID,ENABLE_CAP from SMT_DOOR_CAMERA "); strSql.Append(" where DOOR_ID=@DOOR_ID and CAMERA_ID=@CAMERA_ID "); SqlParameter[] parameters = { new SqlParameter("@DOOR_ID", SqlDbType.Decimal, 9), new SqlParameter("@CAMERA_ID", SqlDbType.Decimal, 9) }; parameters[0].Value = DOOR_ID; parameters[1].Value = CAMERA_ID; Maticsoft.Model.SMT_DOOR_CAMERA model = new Maticsoft.Model.SMT_DOOR_CAMERA(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
private void biAddDoorCamera_Click(object sender, EventArgs e) { var node = this.doorTree.Tree.SelectedNode; if (node == null) { WinInfoHelper.ShowInfoWindow(this, "请选择门禁!"); return; } if (node.Tag is Maticsoft.Model.SMT_DOOR_INFO) { Maticsoft.Model.SMT_DOOR_INFO door = (Maticsoft.Model.SMT_DOOR_INFO)node.Tag; var rows = dgvCamera.SelectedRows; if (rows.Count == 0) { WinInfoHelper.ShowInfoWindow(this, "请选择摄像头!"); return; } List <Maticsoft.Model.SMT_CAMERA_INFO> cameras = new List <Maticsoft.Model.SMT_CAMERA_INFO>(); foreach (DataGridViewRow row in rows) { Maticsoft.Model.SMT_CAMERA_INFO cameraInfo = (Maticsoft.Model.SMT_CAMERA_INFO)row.Tag; cameras.Add(cameraInfo); } CtrlWaiting waiting = new CtrlWaiting(() => { try { foreach (var camera in cameras) { Maticsoft.BLL.SMT_DOOR_CAMERA dcBll = new Maticsoft.BLL.SMT_DOOR_CAMERA(); var dcModel = dcBll.GetModel(door.ID, camera.ID); if (dcModel == null) { dcModel = new Maticsoft.Model.SMT_DOOR_CAMERA(); dcModel.DOOR_ID = door.ID; dcModel.CAMERA_ID = camera.ID; dcModel.ENABLE_CAP = cbEnableCap.Checked; dcBll.Add(dcModel); this.Invoke(new Action(() => { AddToGridDoorCamera(door, camera, dcModel.ENABLE_CAP); })); } else { if (dcModel.ENABLE_CAP != cbEnableCap.Checked) { dcModel.ENABLE_CAP = cbEnableCap.Checked; dcBll.Update(dcModel); this.Invoke(new Action(() => { foreach (DataGridViewRow row in this.dgvDoorCamera.Rows) { DoorCamera dc = (DoorCamera)row.Tag; if (dc.DOOR_ID == door.ID && dc.CAMERA_ID == camera.ID) { row.Cells[2].Value = dcModel.ENABLE_CAP; break; } } })); } } } } catch (Exception ex) { log.Error("添加关系异常:", ex); WinInfoHelper.ShowInfoWindow(this, "添加门禁相机关系异常:" + ex.Message); } }); waiting.Show(this); } else { WinInfoHelper.ShowInfoWindow(this, "请选择门禁节点!"); } }