C# 如何在C中将同一变量传递给其他窗体#
我想要实现的是,当学生登录到系统时,系统应该从数据库中获取他/她的studentID。然后在我的“考试表”——学生参加考试的地方。系统应将考试详情和参加考试的学生ID添加到“考试”表中 问题:我不知道如何将studentID从登录表单传递到测试表单 我有一些我已经试用过的代码,这是我所做的研究的结果,但它仍然不适用于我: 登录表单代码:[只有相关位是“StudentID”部分]C# 如何在C中将同一变量传递给其他窗体#,c#,.net,winforms,C#,.net,Winforms,我想要实现的是,当学生登录到系统时,系统应该从数据库中获取他/她的studentID。然后在我的“考试表”——学生参加考试的地方。系统应将考试详情和参加考试的学生ID添加到“考试”表中 问题:我不知道如何将studentID从登录表单传递到测试表单 我有一些我已经试用过的代码,这是我所做的研究的结果,但它仍然不适用于我: 登录表单代码:[只有相关位是“StudentID”部分] //gets the info and checks if the input is same as contents
//gets the info and checks if the input is same as contents in DB
using (MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;database=project;username=root;password=***;"))
{
MySqlCommand cmd = new MySqlCommand("SELECT student.studentID, student.studentUsername, student.studentPassword, student.studentFirstName, student.studentLastName, teacher.teacherUsername, teacher.teacherPassword, teacher.teacherFirstName, teacher.teacherLastName FROM student, teacher WHERE (student.studentUsername = @userName AND student.studentPassword = @passWord) OR (teacher.teacherUsername = @teacherUser AND teacher.teacherPassword = @teacherPass);");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@userName", textboxUsername.Text);
cmd.Parameters.AddWithValue("@passWord", texBoxPassword.Text);
cmd.Parameters.AddWithValue("@teacherUser", textboxUsername.Text);
cmd.Parameters.AddWithValue("@teacherPass", texBoxPassword.Text);
MySqlDataReader DBReader;
cmd.Connection = connection;
connection.Open();
DBReader = cmd.ExecuteReader();
while (DBReader.Read())
{
var teacherFirstName = DBReader.GetString("teacherFirstName");
var teacherLastName = DBReader.GetString("teacherLastName");
var teacherLogin = DBReader.GetString("teacherUsername");
var teacherPass = DBReader.GetString("teacherPassword");
var studentFirstName = DBReader.GetString("studentFirstName");
var studentLastName = DBReader.GetString("studentLastName");
var studentLogin = DBReader.GetString("studentUsername");
var studentPass = DBReader.GetString("studentPassword");
string studentID = DBReader.GetString("studentID");
if (teacherLogin == textboxUsername.Text && teacherPass == texBoxPassword.Text)
{
MessageBox.Show("Welcome " + teacherFirstName + " " + teacherLastName);
this.Hide();
TeacherHomepage Form = new TeacherHomepage();
Form.Show();
}
else if (studentLogin == textboxUsername.Text && studentPass == texBoxPassword.Text)
{
MessageBox.Show("Welcome " + studentFirstName + " " + studentLastName);
this.Hide();
Test ss = new Test(studentID);
ss.Show();
}
else
{
MessageBox.Show("username or password invalid");
}
测试表格代码:
public Test(string studentID)
{
InitializeComponent();
int StudentID = Convert.ToInt32(studentID);
}
注:
登录功能可以工作:
我想要与登录的学生相同的StudentID用于表单“测试”。另外,当studentID是局部变量时,如何在其他函数中使用测试表单中的“studentID”变量?还要注意,我没有使用任何类(OOP)。如果有更简单的方法,请告诉我。您可以将StudentID添加为自动属性或测试表单中的字段。所以它将是-->
您可以将StudentID作为自动属性或字段添加到测试表单中。所以它将是-->
您可以在类中声明一个公共变量,并使用它来存储学生id的值。您可以在需要的地方使用它
Public static int student_id;
您可以在类中声明一个公共变量,并使用它来存储学生id的值。您可以在需要的地方使用它
Public static int student_id;