C# - 3 层架构。错误说方法名称没有重载需要 0 个参数

C# - 3 Tier Architecture. Error says No overload for method name takes 0 arguments

我在我的 C# Window 表单中使用 3 层架构。我想要做的是,如果数据存在则隐藏按钮。这是我的代码。

Class 文件

public bool checkIfExists(Variables variables) { // BelPar
        SqlCommand check = new SqlCommand();
        check.Connection = dbcon.getcon();
        check.CommandType = CommandType.Text;
        check.CommandText = "SELECT * FROM tbl";
        SqlDataReader drCheck = check.ExecuteReader();
        if(drCheck.HasRows == true)
        {
            drCheck.Read();
            if (... && .. ||) // conditions where variables are being fetch
            {
                return false;
            }
        }
        drCheck.Close();
        return true;
}

Window表格

btn_save.Visible = !balpayrolldetails.checkIfExists(); // This is where I get the "No overload for method 'checkIfExists' takes 0 arguments.

有什么帮助吗?请在下面留下或回答。谢谢

要调用一个方法,您需要通过它的确切名称来调用它,在本例中是:

checkIfExists(Variables variables);

这告诉我们,要使用这个方法,我们需要传入一个Variables类型的对象,以便在方法执行时使用。

必须提供方法签名中概述的任何类型才能成功调用方法。

您需要从

更新您的通话
btn_save.Visible = !balpayrolldetails.checkIfExists();

btn_save.Visible = !balpayrolldetails.checkIfExists(someVariablesOfTheExpectedType);

具有方法签名:

public bool checkIfExists(Variables variables)

应该通过将 Variables 类型的对象传递给方法来调用它:

btn_save.Visible = !balpayrolldetails.checkIfExists(anInstanceOfVariables);

但是如果您可以接受调用方法 parameter-less 并且您的方法的编写方式可以容忍 variablesnull 值,您可以更改签名对此:

public bool checkIfExists(Variables variables=null)

然后你可以这样称呼它:

btn_save.Visible = !balpayrolldetails.checkIfExists();