2017-09-24 1 views
2

私はプログラミングに慣れていませんし、今は私が働いている会社の請求書作成アプリケーションを書こうとしています。これは私の仕事を簡単にするために実装しようとしているものです。私のWindowsフォームのデータベースとしてexcelフォルダを使用すると、データにアクセスできません

したがって、アイテム番号とそれぞれの純重量と総重量のExcelフォルダがあります。

MTS 0001/26分の24

MTS 0002/26分の24

MTS 0003/30分の28

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

私はFindNetWeightを使用しようとしている今、私のWindowsフォーム用のCSである私のForm.cs、で、それは私が文字列引数と整数を必要とすることを私に示しているが、それはできません私は関数を使用し、私に次のエラーを与えます。

オブジェクト参照は、ここで問題になる可能性がどのような非静的フィールド、メソッド、またはプロパティ

ために必要ですか?うまくいけば私の記述は十分に従うことが明らかであり、私は必要な情報をすべて与えた。

答えて

1

静的関数から非静的関数を呼び出すようです。 FindNetWeightを静的にすることも、新しいSheet2インスタンスを作成することもできます。

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

詳しい情報は[マイクロソフト-ドキュメント](上で見つけることができます。https:Sheet2の新しいインスタンスを作成し、

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

または:

簡単な方法は、そう、それは静的にすることです://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0120) – snivy9014

関連する問題