对于措辞不佳的标题感到抱歉。我的问题是超过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很好,而不是基本的东西。
答案 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;
}
});