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

C# WinForms登录页面实现授权后主页面显示欢迎消息的方法

解决方案

1. 完善Main窗体的代码

先在Main窗体中添加用于显示欢迎消息的控件(比如命名为lblWelcome的Label),并新增一个方法来设置欢迎文本:

using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }

        // 用于设置欢迎消息的方法
        public void SetWelcomeMessage(string message)
        {
            lblWelcome.Text = message;
        }
    }
}

2. 修改登录窗体(Form1)的代码

修复语法错误、替换为参数化查询避免SQL注入,并正确调用Main窗体的方法:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            // 使用using语句自动释放数据库连接资源
            using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\NETCOM\OneDrive\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30"))
            {
                // 参数化查询替代字符串拼接,防止SQL注入
                string query = "SELECT COUNT(*) FROM Login WHERE Username = @Username AND Password = @Password";
                SqlCommand cmd = new SqlCommand(query, con);
                cmd.Parameters.AddWithValue("@Username", textBox1.Text);
                cmd.Parameters.AddWithValue("@Password", textBox2.Text);

                con.Open();
                int count = (int)cmd.ExecuteScalar();

                if (count == 1)
                {
                    this.Hide();
                    Main ss = new Main();
                    // 调用Main窗体的方法设置欢迎消息
                    ss.SetWelcomeMessage("Welcome to my page");
                    ss.Show();
                }
                else
                {
                    MessageBox.Show("请检查你的用户名和密码");
                }
            }
        }
    }
}

关键修改说明

  • 修复语法错误:原代码中ss.("Welcome to my page");是无效语法,改为调用Main窗体定义的SetWelcomeMessage方法传递欢迎文本。
  • 防范SQL注入:用参数化查询替代字符串拼接的SQL语句,避免恶意输入导致的数据库安全风险。
  • 自动释放资源:用using包裹SqlConnection,确保数据库连接使用后自动释放,避免资源泄漏。
  • 简化查询逻辑:使用ExecuteScalar直接获取查询结果,无需SqlDataAdapter和DataTable,代码更简洁高效。

内容的提问来源于stack exchange,提问作者Lakshay Vats

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:24:21