C#中表单多条件校验与MySQL连接问题咨询
C# 表单校验与数据库入库按钮点击事件
这段代码是用于处理按钮点击事件,完成表单多控件校验(文本框、单选按钮、组合框等)、用户名数据库唯一性检查,通过所有校验后将数据存入数据库的逻辑。以下是格式化后的代码及优化建议:
现有代码片段
private void button2_Click_2(object sender, EventArgs e) { int Vid_Smetka; if (radioNewAdmin.Checked) { Vid_Smet... // 此处为你未粘贴完整的代码逻辑 } // 省略中间的控件校验、用户名唯一性检查逻辑 // 所有校验通过后的数据入库逻辑 else { // 执行数据库插入操作的代码 } }
优化建议
- 拆分校验逻辑:把控件校验、用户名唯一性检查抽成独立的方法,让事件处理方法更简洁易维护:
private bool IsFormValid() { // 校验文本框非空、单选按钮选中状态、组合框选中项合法性等逻辑 if(string.IsNullOrWhiteSpace(txtUsername.Text)) { MessageBox.Show("用户名不能为空"); return false; } // 其他控件校验... return true; } private bool IsUsernameUnique(string username) { // 使用参数化查询检查用户名唯一性,避免SQL注入 using(var conn = new SqlConnection("你的数据库连接字符串")) { conn.Open(); string query = "SELECT COUNT(*) FROM Users WHERE Username = @Username"; using(var cmd = new SqlCommand(query, conn)) { cmd.Parameters.AddWithValue("@Username", username); int count = (int)cmd.ExecuteScalar(); return count == 0; } } } - 增强用户反馈:在校验不通过时,给用户明确的提示(比如
MessageBox或者控件旁的错误标签),而不是默默失败 - 安全与性能:数据库操作务必使用
using语句自动释放连接和命令对象,同时用参数化查询避免SQL注入风险 - 代码可读性:给控件起有意义的名字(比如把
button2改成btnSubmit),替换button2_Click_2这种自动生成的模糊事件名
内容的提问来源于stack exchange,提问作者Prometheus
相关产品推荐
相关产品推荐

