如果asp-classic中的变量为null,如何将文本输入设置为0?

时间:2013-12-20 14:56:06

标签: jquery sql oracle asp-classic textbox

对于措辞不佳的标题感到抱歉。我的问题是超过150个字符,所以我不得不尝试压缩它。

我有一个asp经典页面,上面有大约100个文本输入。这些输入使用adovbs填充来自oracle数据库的数据。但是,如果用户正在插入新记录,则显然不会有来自数据库的任何数据,这意味着所有输入都将为空。我希望所有这些输入都默认为0,但如果数据库中有任何先前的数据,我希望它们包含实际数据吗?我怎么能这样做?

目前的计划结构如下:

SELECT * FROM TABLE WHERE DATE=selectedDate AND SHIFT=selectedShift

<%
     date = RS("DATE")
%>

构建网站

<input type="text" id="date" value="<%=date%>"></input>

你明白了。如果date为空,我怎么能这样做,即所选记录中没有数据,输入的值为0而不必为每一个输入写一个if语句?我在我的页面上使用jquery,所以在构建页面后我有什么方法可以进行检查,只是做

for each [input]
  if ([input].val.length==0)
       [input].val = 0

这可能吗?如果是这样,那么语法是什么?我真的只对jQuery UI很好,而不是基本的东西。

3 个答案:

答案 0 :(得分:2)

在SQL中使用isnull函数。例如:

选择isNull(date,0)作为日期

当date为null时,你得到0

答案 1 :(得分:2)

您可以编写一个将空值转换为0的函数:

Function NotNull(val)
     If IsNull(val) Then
         NotNull = 0
     Else
         NotNull = val
     End If
End Function

然后,而不是......

date = RS("DATE")

...如果为null,则使用您的函数将其转换为零:

date = NotNull(RS("DATE"))

答案 2 :(得分:0)

我想出了我需要做的事情。我希望避免使用任何oracle的东西,因为我不太了解数据库方面的东西,并希望它只是一个javascript解决方案,如果可能的话。这就是我最终做的事情。在构建页面并且从数据库中填充所有框之后,任何留空(意味着没有数据)都是用零自动填充的。

$('input[type="text"]').each(function() {
    if (this.value.length == 0) {
        this.value=0;
    }   
});