【发布时间】:2012-08-04 04:41:43
【问题描述】:
各位程序员,
我正在使用 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);
【问题讨论】:
-
你不觉得
rsStbDetails.MoveNext();应该在While循环里面吗?? -
执行哪种sql语句来填充rsStbDetails?
-
@ADC 我正在使用以下语句来执行语句:
object Params = objComm.Parameters; rsStbDetails = objComm.Execute(out dummy, ref Params, (int)ADODB.CommandTypeEnum.adCmdStoredProc);dummy只是一个空对象