2015-04-05 153 views
-1

所以我有一個方法使用傳入的變量插入到數據庫中,我正在使用表適配器。從插入方法返回一個值

這是我有:

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

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


     } 
     catch(Exception ex) 
     { 

     } 
    } 

在另一類我要檢索的插入是否成功與否,我明白我需要在try語句插入方法返回的東西,然而,我會返回插入查詢?

+0

由於函數簽名......我會假設你返回true ...然後在吞嚥異常的情況下爲false ... – forsvarir 2015-04-05 20:10:55

回答

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 2015-04-05 20:47:57

+0

@Samrikan正確。理想情況下,您需要在catch塊中記錄異常,然後重新推出更高級別的代碼以決定如何處理它。 – mason 2015-04-05 22:03:00

+0

@mason我有這個錯誤,請你試着回答我的新問題嗎? http://stackoverflow.com/questions/29462794/error-when-returning-in-method謝謝 – Samrikan 2015-04-05 22:12:41

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