2015-04-05 3 views
-1

У меня есть метод, который использует переданные переменные для вставки в БД, я использую адаптеры таблицы.Возвращение значения из метода insert

Это то, что у меня есть:

public bool Insert(string fname, string lname) 
    { 
     try 
     { 

      peopleTableAdapters.PeopleTableAdapter peopleTA= new peopleTableAdapters.PeopleTableAdapter(); 
      peopleTA.insertQuery(fname, lname); 


     } 
     catch(Exception ex) 
     { 

     } 
    } 

В другом классе я хочу, чтобы извлечь ли вставка была успешной или нет, я понимаю, я должен был бы вернуть то, что в заявлении Ьгу в методе вставки, однако что бы я вернулся для запроса на вставку?

+0

Учитывая функции подписи ... Я предполагаю, что вы хотите вернуть истинный ... тогда false в случае исключения, которое вы глотаете ... – forsvarir

ответ

0

Я предлагаю вам не скрывать исключение и перехватывать исключения в клиентском коде.

public void Insert(string fname, string lname) 
{ 
    peopleTableAdapters.PeopleTableAdapter peopleTA= new peopleTableAdapters.PeopleTableAdapter(); 
    peopleTA.insertQuery(fname, lname); 
} 

И в коде клиента:

/* previous code */ 
try 
{ 
    Insert("a", "b"); 
} 
catch(Exception e) 
{ 
    //code when insert fails 
} 
+0

В этом случае мне не нужно было ничего возвращать правильно? – Samrikan

+0

@ Самрикан Исправить. В идеале вы должны регистрировать исключение в своем блоке catch, а затем перебросить его для кода более высокого уровня, чтобы решить, что с ним делать. – mason

+0

@mason У меня есть ошибка с этим, не могли бы вы попытаться ответить на мой новый вопрос? http://stackoverflow.com/questions/29462794/error-when-returning-in-method Спасибо – Samrikan

0

Вы должны вернуть Правда или Ложные от метода вставки. Простой, как показано ниже,

public bool Insert(string fname, string lname) 
    { 
     try 
     { 
      peopleTableAdapters.PeopleTableAdapter peopleTA= new peopleTableAdapters.PeopleTableAdapter(); 
      peopleTA.insertQuery(fname, lname); 

      // return true since no exception occured 
      return True; 

     } 
     catch(Exception ex) 
     { 
      return False; 
     } 
    } 

Может быть, вы должны получить исключение, а также, в этом случае попробуйте ниже,

public bool Insert(string fname, string lname, out string message) 
{ 
    string message = string.Empty; 
    try 
    { 
     peopleTableAdapters.PeopleTableAdapter peopleTA= new peopleTableAdapters.PeopleTableAdapter(); 
     peopleTA.insertQuery(fname, lname); 

     // return true since no exception occurred 
     message = "Success!"; 
     return True; 

    } 
    catch(Exception ex) 
    { 
     message = "Error! "+ ex.Message.ToString(); 
     return False; 
    } 
} 
Смежные вопросы