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
相关产品推荐
相关产品推荐

