2016-01-11 2 views
-2

Я использую 3-х уровневую архитектуру в своей форме окна C#. То, что я хочу сделать, - скрыть кнопку, если данные существуют. Вот мои коды.C# - 3 уровня архитектуры. Ошибка: нет перегрузки для имени метода принимает 0 аргументов

Класс File

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. 

Любая помощь? Пожалуйста, оставьте или ответьте ниже. Спасибо

+0

Ошибка говорит об этом уже. Вам нужен параметр (типа Variables) для функции checkIfExists – Minh

+0

Конечно, checkIfExists хочет параметр. Посмотрите на свое определение метода _public bool checkIfExists (** Переменные переменных **) _ Вы не передаете аргумент Variables – Steve

+0

Чтобы просто поддерживать вызов параметра без параметра, вы можете изменить подпись на 'checkIfExists (переменные переменные = null)' –

ответ

2

Для вызова метода, вы должны называть его точное название, которое в данном случае является:

checkIfExists(Variables variables); 

Это говорит нам, что использовать этот метод, мы должны передать его в объект типа Variables, который будет использоваться при выполнении метода.

Каким бы ни был тип, обозначенный в методе, должен быть предоставлен для успешного вызова метода.

Вам нужно будет обновить ваш звонок от

btn_save.Visible = !balpayrolldetails.checkIfExists(); 

в

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

@ Matt-Hensly, что вы подразумеваете под «someVariableOfTheExpectedType»? :) –

+0

@mark, это будет только то, что ваши переменные. Вы измените его на основе конкретных переменных, которые вы используете. –

1

Имея сигнатуру метода:

public bool checkIfExists(Variables variables) 

Он должен быть вызван, передавая объект типа Variables к способу:

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

Но если это приемлемо для вас, чтобы вызвать метод без параметров и ваш метод написан таким образом, что может выдержать имея variables с null значение, вы можете изменить подпись к этому:

public bool checkIfExists(Variables variables=null) 

И тогда вы можете назвать это так:

btn_save.Visible = !balpayrolldetails.checkIfExists(); 

 Смежные вопросы

  • Нет связанных вопросов^_^