2017-09-24 73 views
2

我是編程的新手,現在我正在爲我工​​作的公司編寫一個發票製造應用程序。這是我試圖實現的目的,以便讓我的任務變得輕鬆。使用Excel文件夾作爲我的Windows窗體的數據庫,我無法訪問數據

所以,有一個Excel文件夾的項目編號和它們各自的淨重和毛重,像這樣;

MTS 0001 /26分之24

MTS 0002 /26分之24

MTS 0003 /三十〇分之二十八

MTS 0008 /36分之34

此信息包含在myworkbook.xlsx,Sheet2中,所以我在Sheet2.cs中實現了一個函數,就像這樣;

public bool FindNetWeight(string item, out int weight) 
    { 
     for (int i = 0; i < 250; i++) 
     { 
      if (Cells[1, i]) 
      { 
       return int.TryParse(Cells[3, i], out weight); 
      } 
     } 
     weight = 0; 
     return false; 
    } 

現在,在我的Form.cs,這是CS爲我的窗戶形式,我試圖用FindNetWeight,它表明我,我需要一個字符串參數和一個整數,但是它不會讓我使用該功能,並給我以下錯誤;

的對象引用是必需的非靜態字段,方法或屬性

可能是什麼問題就在這裏?希望我的描述足夠清晰,並且我已經提供了所有必要的信息。

回答

1

它看起來像你從一個靜態函數調用非靜態函數。 您可以使您的FindNetWeight靜態,也可以創建Sheet2的新實例。

最簡單的方法是使靜態的,所以:

 public static bool FindNetWeight(string item, out int weight) 
     { 
     //yourcode 
     } 

或者,創建Sheet2中的一個新實例:

Sheet2 mySheet = new Sheet2(); 
mySheet.FindNetWeight(blabla) 
+0

的更多信息可以在[微軟的文檔](找到HTTPS ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0120) – snivy9014

相關問題