コード例 #1
0
        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);
        }