C#-3层体系结构.错误显示方法名称的No重载需要0个参数

本文关键字:重载 No 参数 0个 体系结构 错误 显示 方法 C#-3 | 更新日期: 2023-09-27 18:29:48

我在C#窗体中使用三层架构。我想做的是,如果数据存在,就隐藏按钮。这是我的密码。

类文件

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;
}

窗口窗体

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

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

C#-3层体系结构.错误显示方法名称的No重载需要0个参数

要调用一个方法,需要按其确切名称进行调用,在本例中为:

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);

但是,如果你可以接受少调用方法参数,并且你的方法是以一种可以容忍variablesnull值的方式编写的,你可以将签名更改为:

public bool checkIfExists(Variables variables=null)

然后你可以这样称呼它:

btn_save.Visible = !balpayrolldetails.checkIfExists();