2016-03-30 53 views
-2

可变比特我得到了以下错误:C#错误:使用方法

view('rs' is a variable bit it is used as a 'method')

我不明白为什么。请提供建议。谢谢!

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是标识符的对象,一个类的实例。它不是一个函数,你不能使用(...)。

也许你正在寻找索引属性。方括号表示可以将对象视为可以将方括号之间的值用作索引的项目序列。方括号的常见用途是数组,列表,集合中的整数索引,但方括号之间的值不一定是整数。使用字典时,括号内的类型是键类型的值。

Adob​​Db.Recordset也有一个索引属性click to view。也许你想打这个?