private void buttonOk_Click(object sender, EventArgs e) { if (addUserName.Text != "" && addUserPw.Text != "") { if (isUp.Text != "修改用户") { string sql = "insert into users(userName,password) values('" + addUserName.Text + "','" + addUserPw.Text + "');"; DataBaseSys.ExecuteNonQuery(sql); MessageBox.Show("添加成功"); this.DialogResult = DialogResult.OK; this.Close(); } else { isUp.Text = "修改会员密码"; string sql = "update users set `password`='" + addUserPw.Text + "'where userName='******'"; DataBaseSys.ExecuteNonQuery(sql); MessageBox.Show("修改成功!"); this.DialogResult = DialogResult.OK; this.Close(); } } else { MessageBox.Show("用户名和密码不能为空!"); } }
private void buttonDele_Click(object sender, EventArgs e) { MessageBoxButtons msb = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show("确定删除该用户吗?", "提示", msb); if (dr == DialogResult.OK) { int id = int.Parse(userDataView.SelectedRows[0].Cells[0].Value.ToString()); string sql = "delete from users where id='" + id + "';"; DataBaseSys.ExecuteNonQuery(sql); MessageBox.Show("删除成功!"); ManagerSystem_Load(null, null); this.tabControl1.SelectedIndex = 0; } }
private void buttonDelAdress_Click(object sender, EventArgs e) { try { MessageBoxButtons messButton = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show("确定要删除吗?", "提示", messButton); if (dr == DialogResult.OK) { int a = adressDataView.CurrentRow.Index; string id = adressDataView.Rows[a].Cells[0].Value.ToString(); string sql = "delete from machines where id='" + id + "'"; DataBaseSys.ExecuteNonQuery(sql); adressDataView.Rows.Remove(adressDataView.CurrentRow); MessageBox.Show("删除成功!"); } } catch (Exception) { MessageBox.Show("出现异常,删除失败!");; } }
private void adressDataView_CellValidated(object sender, DataGridViewCellEventArgs e) { try { if (b == true) { b = false; adressDataView.ReadOnly = true; if (adressDataView.Rows.Count > 0) { int id = Convert.ToInt32(adressDataView.CurrentRow.Cells[0].Value.ToString()); string adressPoint = adressDataView.CurrentRow.Cells[3].Value.ToString(); if (myPoint != adressPoint) { if (adressPoint.Equals("")) { MessageBox.Show("坐标不能为空!"); adressDataView.CurrentRow.Cells[3].Value = myPoint; return; } string[] styleSet = adressPoint.Split(','); bool b = true;//标记是否为数字 bool isSame = true; string isSamePoint = ""; for (int i = 0; i < styleSet.Length; i++) { if (styleSet[i].Length < 2) { styleSet[i] = "0" + styleSet[i]; } b = IsInt(styleSet[i]); } string newPoints = string.Join(",", styleSet); if (styleSet.Length % 2 == 1 || !b) { MessageBox.Show("坐标及格式不正确!请重新填写!"); adressDataView.CurrentRow.Cells[3].Value = myPoint; return; } else { if (getTopUnder(styleSet)) { for (int i = 0; i < styleSet.Length; i++) { isSamePoint += styleSet[i]; } string[] isSamePoints = Regex.Replace(isSamePoint.Replace(",", ""), @"(\w{4})", "$1,").Trim(',').Split(','); HashSet <string> hashSet = new HashSet <string>(); for (int i = 0; i < isSamePoints.Length; i++) { hashSet.Add(isSamePoints[i]); MessageBox.Show(hashSet.Count + "--" + isSamePoints.Length); } if (hashSet.Count != isSamePoints.Length) { isSame = false; } if (isSame) { MessageBoxButtons messButtonUpdate = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show("确定修改吗?", "提示", messButtonUpdate); if (dr == DialogResult.OK) { string pointNum = (styleSet.Length / 2) < 10 ? "0" + (styleSet.Length / 2) : (styleSet.Length / 2).ToString(); //更新语句 string sql = "update machines set childNumber='" + pointNum + "' ,adressNumber='" + newPoints + "' where id= '" + id + "'"; DataBaseSys.ExecuteNonQuery(sql); adressDataView.CurrentRow.Cells[2].Value = pointNum; adressDataView.CurrentRow.Cells[3].Value = newPoints; adressDataView.CurrentRow.Cells[3].ReadOnly = true; MessageBox.Show("修改成功!"); } else { adressDataView.CurrentRow.Cells[3].Value = myPoint; isSame = true; } } else { adressDataView.CurrentRow.Cells[3].Value = myPoint; isSame = true; MessageBox.Show("请您修改坐标,不能存在2组或多组一样坐标点!"); } } else { adressDataView.CurrentRow.Cells[3].Value = myPoint; isSame = true; MessageBox.Show("坐标过大或不能为0或负数!"); } } } } } } catch (Exception) { MessageBox.Show("修改失败!只支持修改坐标"); adressDataView.CurrentRow.Cells[3].Value = myPoint; return; } }
//下位机串口2接收数据 private void sp2_DataReceived(object sender, EventArgs e) { System.Threading.Thread.Sleep(100); this.Invoke((EventHandler)(delegate { System.Threading.Thread.Sleep(100); Byte[] rb = new Byte[sp2.BytesToRead]; sp2.Read(rb, 0, rb.Length); //手动状态下 if (radioHand.Checked) { //存储回复FF信号的板子编号(04) if (rb[3] == 0XFF) { strs += rb[2].ToString(); } else//(03) { string xYPoints = childToPcPointChange(rb); childRandnum += rb[2].ToString(); adressPoints += xYPoints; MessageBox.Show("定位成功子板id为" + childRandnum + "+-------收到的板子ID为:" + strs); if (strs == childRandnum&&RexvData.Text!="") { lightSet.ForeColor = Color.Green; string pointDingWei = ""; for (int i = 0; i < adressPoints.Split(',').Length; i++) { pointDingWei += adressPoints.Split(',')[i]; } string[] pointDingWeiStrs = Regex.Replace(pointDingWei, @"(\w{4})", "$1,").Trim(',').Split(','); DataTable dt = new DataTable(); dt.Rows.Add(); for (int i = 0; i < pointDingWeiStrs.Length; i++) { dt.Columns.Add("P" + (i + 1), System.Type.GetType("System.String")); dt.Rows[0][i] = pointDingWeiStrs[i]; } DataSet ds2 = new DataSet(); ds2.Tables.Add(dt); //sda.Fill(ds2); dataAdressView1.DataSource = ds2.Tables[0]; dataAdressView1.ReadOnly = true; string machineId = RexvData.Text; string newAdrsssPints = adressPoints.TrimEnd(','); int n = adressPoints.Split(',').Length / 2; string pointNumber = n > 10 ? n.ToString() : "0" + n; String sqlHandMes = "select id from machines where machineId='" + RexvData.Text + "';"; MySqlDataReader msdrHand=DataBaseSys.GetDataReaderValue(sqlHandMes); if (msdrHand.HasRows) { MessageBoxButtons ButtonHandAdress = MessageBoxButtons.OKCancel; DialogResult drHand = MessageBox.Show("定位成功,存在相关的机种,需要修改吗?", "提示", ButtonHandAdress); if (drHand == DialogResult.OK) { if (!vip) MessageBox.Show("您没有管理员权限无法修改!"); else { string sql = "update machines set childNumber='" + pointNumber + "' ,adressNumber='" + newAdrsssPints + "' where machineId= '" + RexvData.Text + "'"; DataBaseSys.ExecuteNonQuery(sql); MessageBox.Show("修改成功!"); } } } else { MessageBoxButtons messButton = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show("定位成功,无相关的机种,确定添加吗?", "提示", messButton); if (dr == DialogResult.OK)//如果点击“确定”按钮 { string addSql = "insert into machines(machineId,childNumber,adressNumber) values('" + machineId + "','" + pointNumber + "','" + newAdrsssPints + "')"; DataBaseSys.ExecuteNonQuery(addSql); MessageBox.Show("添加成功!"); } } adressPoints = ""; MessageBoxButtons messButtonAdd = MessageBoxButtons.OKCancel; DialogResult dr2 = MessageBox.Show("需要继续手动添加新机种吗?", "提示", messButtonAdd); if (dr2 == DialogResult.OK) { insertButton.Enabled = false; radioHand_MouseClick(null, null); } else radioAuto.Checked = true; } } } //自动状态下 else { b++; if (rb[3] == 0X00)//纠错成功回复00(05) { childNumList.Remove("0" + rb[2]); b = b - 1; if (childNumList.Count==0) { for (int k = 0; k < dataAdressView1.ColumnCount; k++) { dataAdressView1.Rows[0].Cells[k].Style.ForeColor = Color.Black; } lightSet.ForeColor = Color.Green; timer1.Enabled = false; timer1.Stop(); childNumList.Clear(); return; } } else//有错误子板回复带坐标的(05) { string[] pointNums = Regex.Replace(dataBasePoints, @"(\w{4})", "$1,").Trim(',').Split(',');//把数据库查的坐标以一组4位以逗号分隔 string xYPoints = childToPcPointChange(rb); autoAdressPoints += xYPoints; string[] autoPoints= Regex.Replace(autoAdressPoints.Replace(",",""), @"(\w{4})", "$1,").Trim(',').Split(',');//把下位机传来查的坐标以一组4位以逗号分隔 for (int i = 0; i < pointNums.Length; i++) { for (int j = 0; j < autoPoints.Length; j++) { if (pointNums[i] == autoPoints[j]) { sameMesList.Add(autoPoints[j]); break ; } } } /*去重 for (int i = 0; i < sameMesList.Count - 1; i++) { for (int j = i + 1; j < sameMesList.Count; j++) { if (sameMesList[i].Equals(sameMesList[j])) { sameMesList.RemoveAt(j); j--; } } }*/ } if (b == childNumList.Count) { string s = ""; foreach (var item in sameMesList) { s+= item.ToString()+","; } for (int k = 0; k < dataAdressView1.ColumnCount; k++) { //string strData = dataAdressView1[j, 0].Value.ToString(); for (int j = 0; j < sameMesList.Count; j++) { if (dataAdressView1.Rows[0].Cells[k].Value.ToString() == sameMesList[j].ToString()) { dataAdressView1.Rows[0].Cells[k].Style.ForeColor = Color.Red; lightSet.ForeColor = Color.Red; break; } else dataAdressView1.Rows[0].Cells[k].Style.ForeColor = Color.Black; } } autoAdressPoints = ""; sameMesList.Clear(); b = 0; } } sp2.DiscardInBuffer(); })); }
string childRandnum = "";//手动定位成功的子板号 //扫码枪串口1接收数据 private void sp_DataReceived(object sender, EventArgs e) { System.Threading.Thread.Sleep(100); this.Invoke((EventHandler)(delegate { try { dataBasePoints = ""; lightSet.ForeColor = Color.Black; if (radioAuto.Checked) { childNumList.Clear(); RexvData.Text = ""; Byte[] rb = new Byte[sp.BytesToRead]; UTF8Encoding utf = new UTF8Encoding(); sp.Read(rb, 0, rb.Length);//接收到数据从缓冲区以字节数组形式读出来 string[] ds = utf.GetString(rb).Split(','); string machineNum = ds[0]; string pointNumber = ds[1].Substring(0, 2); string adressPoint = ds[1].Substring(2, (ds[1].Length) - 2); string newStyle = Regex.Replace(adressPoint, @"(\w{2})", "$1,").Trim(','); RexvData.Text = machineNum; String sql = "select childNumber,adressNumber from machines where machineId='" + machineNum + "';"; MySqlDataReader rder = DataBaseSys.GetDataReaderValue(sql); if (rder.Read()) { string[] point = rder[1].ToString().Split(',');//4 string pointOld = ""; for (int i = 0; i < point.Length; i++) { pointOld += point[i]; } dataBasePoints = pointOld; string[] pointNums = Regex.Replace(pointOld, @"(\w{4})", "$1,").Trim(',').Split(','); string[] twoPoint = Regex.Replace(adressPoint, @"(\w{4})", "$1,").Trim(',').Split(','); if (!Enumerable.SequenceEqual(pointNums, twoPoint)) { MessageBoxButtons messButton1 = MessageBoxButtons.OKCancel; DialogResult dr1 = MessageBox.Show("已有该机种,坐标不一致!需要修改吗?", "提示", messButton1); if (dr1 == DialogResult.OK)//如果点击“确定”按钮 { if (!vip) MessageBox.Show("您没有管理员权限无法修改!"); else { string sqlAuto = "update machines set childNumber='" + pointNumber + "' ,adressNumber='" + newStyle + "' where machineId= '" + RexvData.Text + "'"; DataBaseSys.ExecuteNonQuery(sqlAuto); pointNums = twoPoint; String sqlUpdate = "select childNumber,adressNumber from machines where machineId='" + RexvData.Text + "';"; MySqlDataReader rderUpdate = DataBaseSys.GetDataReaderValue(sqlUpdate); rder = rderUpdate; if (rderUpdate.Read()) { string[] pointUpdate = rderUpdate[1].ToString().Split(',');//4 string pointOldUpdate = ""; for (int i = 0; i < pointUpdate.Length; i++) { pointOldUpdate += pointUpdate[i]; } dataBasePoints = pointOldUpdate; MessageBox.Show("修改成功!"); } } } } DataTable dt = new DataTable(); dt.Rows.Add(); for (int i = 0; i < pointNums.Length; i++) { dt.Columns.Add("P" + (i + 1), System.Type.GetType("System.String")); dt.Rows[0][i] = pointNums[i]; } DataSet ds2 = new DataSet(); ds2.Tables.Add(dt); //sda.Fill(ds2); dataAdressView1.DataSource = ds2.Tables[0]; dataAdressView1.ReadOnly = true; //dataAdressView1.Rows[0].Cells[0].Style.BackColor = Color.Red; //自动模式下解析数据库存放的坐标地址用来与子板通讯 string[] adressPointData = rder[1].ToString().Split(','); // string pointNum = msr[0].ToString(); string[] adressPoint1 = getChildNum(adressPointData); //adressPoint1 = adressPoint1.Where(sP => !string.IsNullOrEmpty(sP)).ToArray(); for (int i = 0; i < adressPoint1.Length; i++) { if (!string.IsNullOrEmpty(adressPoint1[i])) { PortOrder po = new PortOrder(Direction.AB, "02", "0" + (i + 1), "0" + adressPoint1[i].Length / 4, adressPoint1[i]); childNumList.Add("0" + (i + 1)); sp2.Write(hexToString(po.getConnOrder()), 0, hexToString(po.getConnOrder()).Length); } } //定时向子板发送05自动读取命令以收到错误坐标指令 timer1.Enabled = true; timer1.Start(); } else { MessageBoxButtons messButton = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show("检测到是新机种!确定添加吗?", "提示", messButton); if (dr == DialogResult.OK)//如果点击“确定”按钮 { try { string addSql = "insert into machines(machineId,childNumber,adressNumber) values('" + machineNum + "','" + pointNumber + "','" + newStyle + "')"; DataBaseSys.ExecuteNonQuery(addSql); MessageBox.Show("添加成功!请重新扫描。"); } catch (Exception) { MessageBox.Show("添加失败!"); } } else {RexvData.Text = ""; dataAdressView1.DataSource = new DataTable(); } sp.DiscardInBuffer(); } } } catch (Exception x) { MessageBox.Show("出现异常错误!" + x.ToString()); } })); }