You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于查询结果加载窗口表单:登录与设置表单显示逻辑问题

启动时根据配置自动切换表单的实现方案

核心逻辑说明

你的需求是:程序启动执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:45:39