C# 界面跳转-登陆之后跳转至主窗口
时间: 2023-07-06 18:19:12 浏览: 229
在 C# 中实现界面跳转可以使用窗体(Form)之间的显示和关闭来实现。具体实现步骤如下:
1. 创建登录窗体和主窗体,可以使用 Visual Studio 中的 Windows 窗体应用程序模板来快速创建。
2. 在登录窗体的登录按钮的 Click 事件中编写登录逻辑代码,如果登录成功,则关闭登录窗体并打开主窗体。
```csharp
private void btnLogin_Click(object sender, EventArgs e)
{
// 登录逻辑代码
if (loginSuccess)
{
// 打开主窗体
MainForm mainForm = new MainForm();
mainForm.Show();
// 关闭登录窗体
this.Close();
}
}
```
3. 在主窗体的 Load 事件中编写初始化代码,比如加载用户信息等。
```csharp
private void MainForm_Load(object sender, EventArgs e)
{
// 初始化代码
LoadUserInfo();
}
```
通过以上步骤,登录成功后即可跳转至主窗体。
相关问题
c#连接数据库登陆跳转
以下是一个C#连接数据库实现登陆跳转的示例代码:
```csharp
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace LoginApp
{
public partial class LoginForm : Form
{
private const string connectionString = "Data Source=MyServer;Initial Catalog=MyDatabase;User ID=MyUsername;Password=MyPassword";
// 根据你的实际情况修改上述连接字符串
public LoginForm()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUsername.Text;
string password = txtPassword.Text;
string query = $"SELECT COUNT(*) FROM Users WHERE Username='{username}' AND Password='{password}'";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(query, connection);
int count = Convert.ToInt32(command.ExecuteScalar());
if (count > 0)
{
// 登陆成功,跳转到主窗口
MainForm mainForm = new MainForm();
this.Hide();
mainForm.ShowDialog();
this.Close();
}
else
{
MessageBox.Show("用户名或密码错误!");
}
}
}
}
}
```
上述代码中,我们使用了 `SqlConnection` 类连接数据库,并使用 `SqlCommand` 类执行查询语句。如果查询结果大于 0,则说明用户名和密码正确,此时我们跳转到主窗口;否则弹出错误提示框。
在跳转到主窗口时,我们使用了 `this.Hide()` 隐藏当前窗口,而不是直接关闭它。这样做是为了在主窗口关闭时,能够重新显示登陆窗口。
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注入攻击。