private void LoginBtn_Click_1(object sender, EventArgs e) { Con.Open(); SqlDataAdapter sda = new SqlDataAdapter("select count(*) from AccountTb1 where AccNum='" + AccNumTb.Text + "'and Pin='" + PinTb.Text + "'", Con); DataTable dt = new DataTable(); sda.Fill(dt); if (dt.Rows[0][0].ToString() == "1") { AccNumber = AccNumTb.Text; Basic basic = new Basic(); basic.Show(); this.Hide(); } else { MessageBox.Show("请输入正确的账号和密码"); } Con.Close(); },给这段代码加上详细的注释,以及实现的功能和思路
时间: 2024-03-20 14:42:35 浏览: 303
vue实现登录拦截
这段代码是一个 C# WinForm 程序中的事件处理函数,当登录按钮被点击时会被调用。它主要实现了用户登录的功能,具体的实现思路和流程如下:
1. 首先,通过 `Con.Open()` 打开与数据库的连接。
2. 接着,使用 `SqlDataAdapter` 类执行 SQL 查询语句,查询指定账号和密码是否存在于数据库中。这里的查询语句是 `"select count(*) from AccountTb1 where AccNum='" + AccNumTb.Text + "'and Pin='" + PinTb.Text + "'"` ,其中 `AccNumTb` 和 `PinTb` 分别是用户输入账号和密码的文本框控件。
3. 将查询结果存储到一个 `DataTable` 对象中,使用 `sda.Fill(dt)` 方法将查询结果填充到表格中。
4. 接下来,通过 `dt.Rows[0][0].ToString() == "1"` 判断查询结果是否为 1,也就是判断输入的账号和密码是否匹配,如果匹配,就说明用户输入的账号和密码是正确的。
5. 如果账号和密码正确,则将账号保存到 `AccNumber` 变量中,并创建一个新的 `Basic` 窗口对象 `basic`,并显示出来,同时隐藏当前窗口(也就是登录窗口)。
6. 如果账号和密码不正确,则弹出一个消息框提示用户输入正确的账号和密码。
7. 最后,通过 `Con.Close()` 关闭数据库连接。
以下是完整代码的注释:
```csharp
private void LoginBtn_Click_1(object sender, EventArgs e)
{
// 打开与数据库的连接
Con.Open();
// 创建一个 SqlDataAdapter 对象,执行查询语句,获取查询结果
SqlDataAdapter sda = new SqlDataAdapter("select count(*) from AccountTb1 where AccNum='" + AccNumTb.Text + "'and Pin='" + PinTb.Text + "'", Con);
DataTable dt = new DataTable();
sda.Fill(dt);
// 判断查询结果是否为 1,即输入的账号和密码是否匹配
if (dt.Rows[0][0].ToString() == "1")
{
// 如果匹配,则保存账号到 AccNumber 变量中
AccNumber = AccNumTb.Text;
// 创建一个 Basic 窗口对象,显示它,并隐藏当前窗口
Basic basic = new Basic();
basic.Show();
this.Hide();
}
else
{
// 如果不匹配,则弹出一个消息框提示用户输入正确的账号和密码
MessageBox.Show("请输入正确的账号和密码");
}
// 关闭数据库连接
Con.Close();
}
```
阅读全文