Foxtable(狐表)用户栏目专家坐堂 → 帮忙看看这个错误提示是什么意思?


  共有11206人关注过本帖树形打印复制链接

主题:帮忙看看这个错误提示是什么意思?

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/22 22:55:00 [显示全部帖子]

这是最常见的错误了,楼主作为最早参与测试的用户,还被这种问题困扰是不应该的。

 

例如,在订单表中输入产品名称后,希望能够自动从产品表中取得对应产品的单价,并填入到单价列中,不少用户可能会如下编写代码:

 

1
2
3
4
5
6
7
8
9
10

If e.DataCol.Name = "产品名称" Then '如果内容发生变动的是产品列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是产品列的内容为空
        e.
DataRow("单价") = Nothing '那么清空此行单价列的内容
   
Else
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        Dim
dr As DataRow
        dr = DataTables("产品").Find("[产品名称] = '" & e.NewValue & "'")
        e.DataRow("单价") = dr("单价")
    End
If
End
If

 

上面的代码看上去是没有问题的,但是疏忽了一个问题,就是订单表所输入的产品,可能在产品表中并不存在对应的行,这样第7行代码运行后,变量dr等于空值Nothing,从而导致第8行代码出错。

 

要怎么改,就不用我说了,这只是一个例子,凡是用到查找的地方,都要考虑找不到的情况。

[此贴子已经被作者于2010-5-22 22:56:48编辑过]

 回到顶部