帮我写一个c#代码,要求实现简单的链接数据库和实现登录功能,先设计form的页面:lable1请输入用户和lable2请输入密码,两个对应的文本框为textbox1和textbox2。最后添加一个button1按钮,为登录按钮。显示登入成功或账户密码无效。
时间: 2024-10-14 10:10:07 浏览: 26
在C#中,我们可以使用ADO.NET库连接数据库并实现基本的登录功能。首先,你需要安装`System.Data.SqlClient`命名空间来处理SQL数据库操作。下面是一个简单的Windows Forms应用程序示例,它包含了你描述的界面元素:
```csharp
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = textBox1.Text;
string password = textBox2.Text;
if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password))
{
MessageBox.Show("用户名和密码不能为空");
return;
}
using (SqlConnection connection = new SqlConnection("Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True"))
{
try
{
connection.Open();
SqlCommand command = new SqlCommand($"SELECT * FROM Users WHERE Username = '{userName}'", connection);
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
if (reader["Password"].ToString() == EncryptPassword(password))
{
MessageBox.Show("登录成功");
}
else
{
MessageBox.Show("账户密码无效");
}
}
else
{
MessageBox.Show("用户名不存在");
}
}
catch (Exception ex)
{
MessageBox.Show($"错误: {ex.Message}");
}
}
}
// 这里仅作演示,实际应用中应使用更安全的加密算法,例如SHA256
static string EncryptPassword(string plainPassword)
{
// 这里省略了实际的哈希过程,只返回plainPassword作为示例
return plainPassword;
}
}
// 程序主入口
class Program
{
[STAThread]
static void Main()
{
Application.Run(new LoginForm());
}
}
```
在这个例子中,我们假设存在一个名为`Users`的表,其中包含`Username`和`Password`字段。请注意,这个代码片段中的简单硬编码密码加密(`EncryptPassword`函数)只是为了展示,实际生产环境中应该使用更强的安全策略,如使用`System.Security.Cryptography`中的哈希函数。
阅读全文