现在我将这个代码放在一个名为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
我错过了什么吗?
PS。为什么cmbTable
和lblInfo
由于其保护级别而无法访问?
谢谢。
答案 0 :(得分:1)
默认情况下,该属性是私有的。如果你想在herited classe中使用,你可以选择:public protected,conteneur,protected internal
在你的情况下我建议公开
public class HelperClass : CollegeSystem.GUI
答案 1 :(得分:1)
你不能这样做。你的行公共部分类GUI:Form,College_System.HelperClass
public partial class GUI : Form, College_System.HelperClass
应该是
public partial class GUI : Form
然后你可以像
一样打电话College_System.HelperClass c = new College_System.HelperClass();
c.selectStudent();
答案 2 :(得分:1)
此代码存在多个问题。
您有一个类和一个实例方法,并且您直接调用该方法。您应该创建类的实例并调用方法。
检查类定义和调用是否在同一名称空间中。如果没有,您应该将类定义为internal / public,并在调用代码页中包含名称空间。
除非在同一类(帮助者)中定义标签,否则无法访问标签
通常,帮助程序类是独立的类,您可以将数据传递给其方法并获取结果进行处理。例如,您可以尝试以下内容:
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;
}
}