2016-03-30 7 views
-2

として使用する可変ビットは、私は次のエラーを得ました。ご教授ください。ありがとうございました!C#のエラー:</p> <blockquote> <p>view('rs' is a variable bit it is used as a 'method')</p> </blockquote> <p>私は理由を理解していない:メソッド

public void loadFirst() 
{ 
    ListView1.Items.Clear(); 
    Connection connect = new Connection(); 
    ADODB.Recordset rs = new ADODB.Recordset(); 
    var _with2 = connect; 
    _with2.open(); 
    string SQL = "SELECT * FROM CA"; 
    rs.Open(SQL, _with2.conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic); 
    if (rs.RecordCount != 0) 
    { 
     while (!rs.EOF) { 
      ListViewItem lv =  ListView1.Items.Add(rs("ProjectName").Value); 
      lv.SubItems.Add(rs("ItemName").Value); 
      lv.SubItems.Add(rs("Amount").Value); 
      lv.SubItems.Add(rs("Budget").Value); 
      lv.SubItems.Add(rs("Expenses").Value); 
      lv.SubItems.Add(rs("Total").Value);        
      rs.MoveNext(); 
     } 
    } 
    _with2.close(); 
} 
+0

'rs(" ProjectName ")'は 'rs'のメソッドを呼び出しています。たぶん 'rs [" ProjectName "]'にするべきでしょうか?また、ここに投稿する前にコードをインデントしてください。 – Rob

+1

答えは質問にあります.RSは変数です。新しいADODB.RecordSet()で作成されます。しかし、呼び出されると、メソッド、関数、またはアクションのように呼び出されます。しかし、完全なライブラリを知らずに私は答えとして入れるつもりはないが、rs( "ProjectName")の代わりにrs ["ProjectName"]を試してみることをお勧めします –

答えて

0

は、C#では、あなたはADODB.Recordset rsオブジェクトのインデクサプロパティにアクセスする際に、角括弧を使用する必要があります。たとえば、rs("Budget")の代わりにrs["Budget"]を使用します。

0

いずれかをお試しください。識別子は関数であり、括弧の間の項目は関数のパラメータの実際の値である識別子信号後

string val = (string)rs.Fields["ProjectName"].Value; // using column name. 

又は

string val = rs.Fields[1].Value.ToString(); // using index 
0

(...)。

MSDN C# operators

は()が

RS関数呼び出し演算子であることを定義識別子は、オブジェクト、クラスのインスタンスです。それは関数ではなく、(...)を使うことはできません。

おそらく、あなたはindexプロパティを探しています。角括弧は、角括弧の間の値をインデックスとして使用できるアイテムのシーケンスと見なすことができることを示しています。角括弧の一般的な使い方は、配列、リスト、コレクション内の整数インデックスですが、角括弧の間の値は整数である必要はありません。ディクショナリを使用する場合、角括弧の間の型はキー型の値です。

Adob​​Db.Recordsetには、インデックスプロパティclick to viewもあります。おそらくあなたはこれを電話したかったでしょうか?