c#实现两个窗口跳转并在数据库中查询登陆传值
时间: 2023-11-26 21:06:42 浏览: 65
C#实现窗口之间的传值
首先,你需要在数据库中创建一个用户表来存储用户信息,例如用户名、密码和其他相关信息。然后,你需要编写一个登陆窗口和主窗口的代码。
在登陆窗口中,你需要编写代码来验证用户输入的用户名和密码是否正确。如果正确,你可以将用户的信息存储在一个变量中,并在主窗口中使用这些信息。
在主窗口中,你可以根据用户的信息从数据库中检索相关的数据,并在窗口中显示这些数据。以下是一个简单的示例代码:
```
// 登陆窗口代码
private void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUsername.Text;
string password = txtPassword.Text;
// 连接数据库并查询用户信息
string connectionString = "Data Source=YOUR_DATABASE_SERVER;Initial Catalog=YOUR_DATABASE_NAME;Integrated Security=True";
string query = "SELECT * FROM Users WHERE Username='" + username + "' AND Password='" + password + "'";
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(query, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// 如果用户存在,则保存用户信息并打开主窗口
if (reader.HasRows)
{
reader.Read();
int userId = reader.GetInt32(0);
string userFullName = reader.GetString(1);
// 保存用户信息到变量中
User currentUser = new User(userId, username, userFullName);
// 打开主窗口,并传递用户信息
MainForm mainForm = new MainForm(currentUser);
mainForm.Show();
this.Hide();
}
else
{
MessageBox.Show("Invalid username or password");
}
reader.Close();
connection.Close();
}
// 主窗口代码
public partial class MainForm : Form
{
private User currentUser;
public MainForm(User user)
{
InitializeComponent();
// 保存当前用户信息
currentUser = user;
// 根据用户信息从数据库中检索相关数据
string connectionString = "Data Source=YOUR_DATABASE_SERVER;Initial Catalog=YOUR_DATABASE_NAME;Integrated Security=True";
string query = "SELECT * FROM UserData WHERE UserId=" + currentUser.Id;
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(query, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// 在窗口中显示相关数据
if (reader.HasRows)
{
reader.Read();
string userData = reader.GetString(1);
txtData.Text = userData;
}
reader.Close();
connection.Close();
}
}
// 用户类
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public string FullName { get; set; }
public User(int id, string username, string fullName)
{
Id = id;
Username = username;
FullName = fullName;
}
}
```
在这个示例代码中,我们假设用户表中有两个列:Id、Username、Password和FullName。我们还假设UserData表中有两个列:UserId和Data。
在登陆窗口中,我们首先获取用户输入的用户名和密码,并使用这些信息查询用户表。如果用户存在,则我们将其信息存储在一个User对象中,并打开主窗口。否则,我们显示一个错误消息。
在主窗口中,我们首先在构造函数中保存当前用户信息。然后,我们使用这些信息从数据库中检索UserData表中的相关数据,并在窗口中显示它。
请注意,这只是一个简单的示例代码,你需要根据你的特定需求进行修改。还要注意安全性问题,例如使用参数化查询来防止SQL注入攻击。
阅读全文