Files
FullAutoWaterCheck/全自动水压检测仪/Forms/UserEditForm.cs
2026-01-26 18:47:27 +08:00

138 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Windows.Forms;
using .DATA;
namespace
{
public partial class UserEditForm : Form
{
private UserRepository _userRepository;
private User _user;
private bool _isEditMode;
public UserEditForm() : this(null) { }
public UserEditForm(User user)
{
InitializeComponent();
_userRepository = new UserRepository();
_user = user;
_isEditMode = user != null;
InitializeFormData();
}
/// <summary>
/// 初始化表单数据
/// </summary>
private void InitializeFormData()
{
if (_isEditMode)
{
this.Text = "编辑用户";
txtUsername.Text = _user.Username;
txtUsername.ReadOnly = true; // 编辑模式不能修改用户名
txtPassword.Visible = false;
lblPassword.Visible = false;
cmbUserRole.SelectedIndex = _user.UserRole;
chkStatus.Checked = _user.Status == 1;
}
else
{
this.Text = "添加用户";
cmbUserRole.SelectedIndex = 0; // 默认为普通用户
chkStatus.Checked = true;
}
}
/// <summary>
/// 保存按钮
/// </summary>
private void btnSave_Click(object sender, EventArgs e)
{
string username = txtUsername.Text.Trim();
string password = txtPassword.Text;
int userRole = cmbUserRole.SelectedIndex;
int status = chkStatus.Checked ? 1 : 0;
// 验证
if (string.IsNullOrEmpty(username))
{
MessageBox.Show("请输入用户名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtUsername.Focus();
return;
}
if (!_isEditMode && string.IsNullOrEmpty(password))
{
MessageBox.Show("请输入密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtPassword.Focus();
return;
}
if (!_isEditMode && password.Length < 6)
{
MessageBox.Show("密码长度不能少于6位", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtPassword.Focus();
return;
}
try
{
if (_isEditMode)
{
// 编辑模式:更新用户信息
_user.Username = username;
_user.UserRole = userRole;
_user.Status = status;
if (_userRepository.UpdateUser(_user))
{
MessageBox.Show("用户信息更新成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
MessageBox.Show("用户信息更新失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
// 添加模式:创建新用户
var newUser = new User
{
Username = username,
UserRole = userRole,
Status = status
};
if (_userRepository.CreateUser(newUser, password))
{
MessageBox.Show("用户创建成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
MessageBox.Show("用户创建失败,用户名可能已存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
catch (Exception ex)
{
MessageBox.Show($"操作失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// 取消按钮
/// </summary>
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
}