⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d980308.gb_

📁 ASPWeb数据库范例总览
💻 GB_
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
   <TITLE>资料库篇:读取栏位资料时,出现 Invalid use of Null,该如何解决?</TITLE>
   <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
   <META NAME="Author" CONTENT="KJ Wang">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#000080" ALINK="#FF0000">

<H2 ALIGN=CENTER><A HREF="vbdb.htm">VB5 与资料库程式设计</A></H2>

<H3 ALIGN=CENTER><A HREF="../vbweeks.htm">每周一问</A>: 挑战您的 VB 功力 (资料库篇, 98/03/08)</H3>

<H2>
<HR WIDTH="100%"></H2>

<CENTER><TABLE>
<TR VALIGN=TOP>
<TD NOWRAP>Q:</TD>

<TD>假设有某一「字串」型别的栏位其名称是「Fieldx」,则以下的叙述通常是正确的:

<UL>
<P>Dim S As String, rs As Recordset<BR>
' 假设 rs 是含有目前资料录的 Recordset 物件<BR>
S = rs(&quot;Fieldx&quot;)</P>
</UL>

<P>但是当这个栏位没有输入资料时, 却會产生错误, 该如何解决呢?</P>
</TD>
</TR>

<TR VALIGN=TOP>
<TD>A:</TD>

<TD>由於 Fieldx 栏位中没有资料, 所以 rs(&quot;Fieldx&quot;) 等於 Null,
在 VB 里面, 如果我们把 Null 指定给「字串」型别的变数(如以上例子中的 S),
是不被接受的, 因此程式应修改如下: 
<UL>
<PRE><FONT SIZE=+1>Dim S As String, rs As Recordset
<FONT COLOR="#FF0000">Dim X ' 宣告一个不定型型别的变数
</FONT>' 假设 rs 是含有目前资料录的 Recordset 物件
X= rs(&quot;Fieldx&quot;)
If IsNull(X) Then
    S = &quot;&quot;  <FONT COLOR="#FF0000">' Null 与 &quot;&quot;(空字串) 的意义并不相同
</FONT>Else
   S = X
End If</FONT></PRE>
</UL>

<PRE>
<HR WIDTH="100%"></PRE>

<P><B><FONT COLOR="#FF0000">03/15 补充说明:更精简的解答</FONT></B></P>

<UL>
<P>以上程式利用 If 来判断 Null, 必须多写 5 行程式, 可读性比较低, 以下则是更精简的解决方案:</P>

<UL>
<P><B><FONT COLOR="#FF0000">S = &quot;&quot; &amp; rs(&quot;Fieldx&quot;)</FONT></B></P>
</UL>

<P>因为当 rs(&quot;Fieldx&quot;) 不等於 Null 时, &quot;&quot; &amp; rs(&quot;Fieldx&quot;)
等於 rs(&quot;Fieldx&quot;), 而当 rs(&quot;Fieldx&quot;) 等於 Null 时,
则 &quot;&quot; &amp; rs(&quot;Fieldx&quot;) 等於 &quot;&quot;。</P>
</UL>

<P><FONT COLOR="#008000">以上解决方案由潘振声先生提供, 特此致谢!</FONT></P>
</TD>
</TR>
</TABLE></CENTER>

<P>
<HR WIDTH="100%"></P>

</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -