gpt4 book ai didi

c# - 如何从 Form 类中调用方法?

转载 作者:行者123 更新时间:2023-11-29 05:27:17 24 4
gpt4 key购买 nike

现在我在一个名为 HelperClass 的类中有这段代码:

class HelperClass : CollegeSystem.GUI
{

public void selectStudent()
{
MySqlConnection conn; // connection object;
string connstring = "server=localhost;user Id=root;database=collegesystem;Convert Zero Datetime=True ";

try
{
conn = new MySqlConnection(connstring);
conn.Open();
MySqlCommand myCommand = new MySqlCommand("SELECT * FROM person", conn);
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
cmbTable.Items.Clear();
while (myReader.Read())
{
cmbTable.Items.Add(myReader["personID"] + " | " + myReader["firstName"] + " | " + myReader["lastName"] + " | " + myReader["address"] + " | " + myReader["phoneNumber"] + " | " + myReader["postCode"] + " | " + myReader["dateOfBirth"]);
}
}

catch (Exception err)
{//handle the error with a message
lblInfo.Text = " Error reading the database.";
lblInfo.Text += err.Message; ;
}

finally
{

}

我想从我的表单中调用它,但它不起作用:

 private void fillcomboBox()
{
selectStudent();
}

名称“selectStudent”在当前上下文中不存在

我把它放在了表格的顶部:

 public partial class GUI : Form, College_System.HelperClass

我错过了什么吗?

附言。为什么 cmbTablelblInfo 由于其保护级别而无法访问?谢谢。

最佳答案

此代码存在多个问题。

  1. 您有一个类和一个实例方法,并且您正在直接调用该方法。您应该创建该类的实例并调用该方法。

  2. 检查类定义和调用是否在同一个命名空间中。如果不是,您应该将类​​定义为内部/公共(public)类,并在调用代码页中包含命名空间。

  3. 您不能访问标签,除非它们在同一个类(助手)中定义

一般来说,帮助类是独立的类,您可以在其中将数据传递给它的方法并获得处理结果。例如,您可以尝试以下操作:

class myForm : Form
{
protected void OnClick()
{
try
{
var data = Helper.SelectStudent();
cmbTable.Items.AddRange(data);
}
catch (Exception ex)
{
lblInfo.Text = " Error reading the database.";
lblInfo.Text += err.Message; ;
}
}
}

class HelperClass
{
public static List<string> SelectStudent()
{
List<string> data = new List<string>();
MySqlConnection conn; // connection object;
string connstring = "server=localhost;user Id=root;database=collegesystem;Convert Zero Datetime=True ";
conn = new MySqlConnection(connstring);
conn.Open();
MySqlCommand myCommand = new MySqlCommand("SELECT * FROM person", conn);
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
cmbTable.Items.Clear();
while (myReader.Read())
{
data.Add(myReader["personID"] + " | " + myReader["firstName"] + " | " + myReader["lastName"] + " | " + myReader["address"] + " | " + myReader["phoneNumber"] + " | " + myReader["postCode"] + " | " + myReader["dateOfBirth"]);
}
return data;
}
}

关于c# - 如何从 Form 类中调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18715204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com