2013-08-27 32 views
0

我有這種方法,我想回返回結果的方法,另一種方法

public void najdi_pojistovnu() 
    { 
     string sqlcom = "SELECT id FROM pojist WHERE name LIKE '" + comboBox1.SelectedItem + "'"; 

     SqlCommand command = new SqlCommand (sqlcom,spojeni); 
     spojeni.Open(); 
     int result= Convert.ToInt32(command.ExecuteScalar()); 
     spojeni.Close(); 

     return result; 

    } 

而且我想從這樣的另一個方法調用的結果:

najdi_pojistovnu(); 

但我gex這個前例:既然(路徑).najdi_poistovnu()返回void返回關鍵字不能跟一個對象表達式

你能幫我解決這個問題嗎?

回答

4

當您返回result這是int類型從而改變函數簽名

變化

public void najdi_pojistovnu() 

public int najdi_pojistovnu() 
2
public int najdi_pojistovnu() 
    { 
     string sqlcom = "SELECT id FROM pojist WHERE name LIKE '" + comboBox1.SelectedItem + "'"; 

     SqlCommand command = new SqlCommand (sqlcom,spojeni); 
     spojeni.Open(); 
     int result= Convert.ToInt32(command.ExecuteScalar()); 
     spojeni.Close(); 

     return result; 

    } 

或者

public void najdi_pojistovnu(out int result) 
    { 
     string sqlcom = "SELECT id FROM pojist WHERE name LIKE '" + comboBox1.SelectedItem + "'"; 

     SqlCommand command = new SqlCommand (sqlcom,spojeni); 
     spojeni.Open(); 
     result= Convert.ToInt32(command.ExecuteScalar()); 
     spojeni.Close(); 

    } 
1

您試圖在void方法中返回int值。正確的語法是:

public int najdi_pojistovnu() 
{ 
    string sqlcom = "SELECT id FROM pojist WHERE name LIKE '" + comboBox1.SelectedItem + "'"; 

    SqlCommand command = new SqlCommand (sqlcom,spojeni); 
    spojeni.Open(); 
    int result= Convert.ToInt32(command.ExecuteScalar()); 
    spojeni.Close(); 

    return result; 

} 
1

GEX這個例如:由於(路徑).najdi_poistovnu()返回void返回關鍵字一定不能跟一個objext表達

你的函數的簽名說,這方法不會返回任何東西。而你試圖從函數中返回一個int(結果)。現在

,如果你想返回整數你應該改變你的定義是這樣

public int najdi_pojistovnu() 

而且我想打電話給這樣從另一種方法的結果:najdi_pojistovnu();

您可以通過指定訪問 水平,如公立或私立,可選的調節劑,這樣稱呼它

int result = najdi_pojistovnu(); 

MSDN

方法的類或結構聲明作爲摘要 或密封,返回值,方法的名稱,以及任何方法 參數。這些部分一起是方法的簽名。