public bool SaveToFile(string filename = "\\syscfg\\user.bin") { filename = Path.GetFullPath("..") + filename; List <ST_USER> list_temp = new List <ST_USER>(); list_temp.Clear(); //检查表格内是否有重复用户名 foreach (DataGridViewRow v in dgv.Rows) { if (v.Cells[1].Value != null) { var count = 0; foreach (DataGridViewRow v2 in dgv.Rows) { if (v2.Cells[1].Value != null) { if (v.Cells[1].Value.ToString().Equals(v2.Cells[1].Value.ToString())) { count++; } } } if (count > 1) { MessageBox.Show("用户名有重复,重复的内容是:【" + v.Cells[1].Value + "】!"); return(false); } } } //检查表格是否有两个超级管理员 foreach (DataGridViewRow v in dgv.Rows) { if (v.Cells[3].Value.ToString().Equals("超级管理员")) { if (v.Index != 0) { MessageBox.Show("第一个用户为超级管理员,其它超级管理员降级为管理员!"); v.Cells[3].Value = "管理员"; } } } foreach (DataGridViewRow row in dgv.Rows) { if (row.Cells[1].Value.ToString().Length < 3 || row.Cells[2].Value.ToString().Length < 3) { continue; } ST_USER user = new ST_USER(); user.name = row.Cells[1].Value.ToString(); user.password = row.Cells[2].Value.ToString(); switch (row.Cells[3].Value.ToString()) { case "超级管理员": user.pms = PERMISSION.SuperAdmin; break; case "管理员": user.pms = PERMISSION.Admin; break; case "工程师": user.pms = PERMISSION.Engineer; break; case "作业员": user.pms = PERMISSION.Operator; break; case "无权限": default: user.pms = PERMISSION.None; break; } list_temp.Add(user); } if (list_temp.Count == 0) { return(false); } //save list_user = list_temp; StreamWriter writer1 = new StreamWriter(filename, false, System.Text.Encoding.GetEncoding("UTF-8")); foreach (ST_USER user in list_temp) { writer1.WriteLine(user.ToString()); } writer1.Close(); writer1.Dispose(); return(true); }