基于查询结果加载窗口表单:登录与设置表单显示逻辑问题
启动时根据配置自动切换表单的实现方案
核心逻辑说明
你的需求是:程序启动执行Application.Run(new Login())时,若用户尚未配置必要参数(即数据库中无admin用户的配置信息),则隐藏登录表单,自动显示DETAILS配置表单;若已配置,则正常显示登录表单。
优化后的中文代码实现
private void countmem1() { // 初始化数据库连接实例 sqlconnect conss = new sqlconnect(); conss.Connections(); // 查询admin用户的配置记录 SqlCommand gold = new SqlCommand("select Address, Name from Detail where USER_name='admin'", conss.con); SqlDataReader srd = gold.ExecuteReader(); if (srd.Read()) { // 存在配置信息,显示当前登录表单 this.Show(); } else { // 无配置信息,关闭登录表单并打开配置表单 this.Close(); DETAILS configForm = new DETAILS(); configForm.Show(); // MessageBox.Show("用户未配置"); } // 释放数据库资源(补充优化:避免资源泄漏) srd.Close(); conss.con.Close(); }
重要优化建议
- 务必在LoginForm的
Load事件中调用countmem1()方法,确保程序启动时自动执行判断逻辑 - 推荐使用
using语句自动管理数据库资源,避免手动关闭遗漏:
private void countmem1() { using (sqlconnect conss = new sqlconnect()) { conss.Connections(); using (SqlCommand gold = new SqlCommand("select Address, Name from Detail where USER_name='admin'", conss.con)) { using (SqlDataReader srd = gold.ExecuteReader()) { if (srd.Read()) { this.Show(); } else { this.Close(); new DETAILS().Show(); } } } conss.con.Close(); } }
- 建议在DETAILS配置表单完成配置后,自动触发跳转回LoginForm,提升用户操作连贯性
内容的提问来源于stack exchange,提问作者Lawrence
相关产品推荐
相关产品推荐

