2

我正在研究一个古老的经典 asp 项目。该数据库的结构非常糟糕,每一行都远远超出了限制(18 个不同的 nvarchar(2000)、众多 nvarchar(256) 等等......)

我做了一个小修复,改变了从记录集中检索字段的顺序。

我现在所看到的让我感到困惑。当我使用其他字段时,最初存在的字段会消失。

例如,我有:

if(RS.Fields('field1').value){
   //do something
}
if((RS.Fields('field2').value){
   //do something
}

在我的一些结果中,field2 在选中时没有显示(在 field1 之后),但如果我在 field1 之前立即检查,它确实存在。

这是一种已知的行为吗?有解决办法吗?

4

1 回答 1

2

问题似乎有两个方面:

一,字段出现在代码中的顺序需要与它们在数据库中的顺序相匹配。是的,不知道,但它有效。

二,字段需要立即加载到变量中。

if(RS.Fields('f1')){
   doWork(RS.Fields('f1'));
}

不起作用,但是

var f1 = RS.Fields('f1');

if(f1){
   doWork(f1)
}

做。

于 2012-08-16T20:48:29.160 回答