2012-08-07 77 views
0

研究员编码器,ADODB命令只检索一个字段

我正在使用ADODB命令从数据库中提取一些信息,其中包含多个字段。但是,当我运行代码时,它只会拉出一个字段,而且它始终是一个字段。我尽可能正确地使用MoveNext,并且我嵌套在EOF while循环中。

这里是我到目前为止有:

if (!rsStbDetails.EOF) 
{ 
    while (!rsStbDetails.EOF) 
    { 
     foreach (ADODB.Field f in rsStbDetails.Fields) 
     { 
      if (f.Value == null) 
      { 
       f.Value = 0; 
      } 

      switch (f.Name) 
      { 
       // There's a load of case statements here to manipulate the values being read in   
       default: 
        SetValue(id, f.Name, f.Value, f.Position); 
        break; 
      } 
     } 
    } 
    rsStbDetails.MoveNext(); 
} 

任何想法? 干杯

编辑:下面是我用来设置我的连接代码:

objComm.ActiveConnection = conSQL; 
objComm.CommandType = CommandTypeEnum.adCmdStoredProc; 
objComm.CommandText = "Service.GetDetails"; 

objComm.Parameters.Append(objComm.CreateParameter("@Node", ADODB.DataTypeEnum.adVarChar, ParameterDirectionEnum.adParamInput, 50, "NAME")); 
objComm.Parameters.Append(objComm.CreateParameter("@Box", ADODB.DataTypeEnum.adVarChar, ParameterDirectionEnum.adParamInput, 20, "")); 
objComm.Parameters.Append(objComm.CreateParameter("@Num", ADODB.DataTypeEnum.adInteger, ParameterDirectionEnum.adParamInput, 20, 0)); 
objComm.Parameters.Append(objComm.CreateParameter("@Exclude", ADODB.DataTypeEnum.adInteger, ParameterDirectionEnum.adParamInput, 20, iExclude)); 

objComm.Parameters[1].Value = Right((string)GetProperty(id, "SName", role), 8); 
+1

你不觉得'rsStbDetails.MoveNext();'应该在'While'循环内? – yogi 2012-08-07 07:45:24

+0

执行哪种sql语句来填充rsStbDetails? – 2012-08-07 07:46:42

+0

@ADC我正在使用以下来执行语句: 'object Params = objComm.Parameters; rsStbDetails = objComm.Execute(出虚设,参考PARAMS,(INT)ADODB.CommandTypeEnum.adCmdStoredProc);' 的'dummy'只是一个空对象 – Skulmuk 2012-08-07 08:07:44

回答

2

你至少应该举动rsStbDetails.MoveNext();一振:)

+0

感谢您的意见,杰拉德。不幸的是,我仍然只获得相同的记录。我正在浏览我的代码,但读入值始终为“Name”。我已经使用SQL Server Management Studio对它进行了查询,并且数据完全返回,因此它似乎是检索器。 – Skulmuk 2012-08-07 07:54:51

+0

你能以某种方式检查rsStbDetails.Fields的数量(或内容)吗?那里的所有领域? – 2012-08-07 07:58:26

+0

如果我使用手表,计数只能保持在1个字段。我附加了我原来的帖子,包含了我的连接设置细节。 – Skulmuk 2012-08-07 08:00:51

0

事实证明,这个问题是服务器端和无关我的代码。我接受了Gerald的回答,指出了不正确的MoveNext()放置。无论如何,谢谢你。