Foxtable(狐表)用户栏目专家坐堂 → 这种情况怎么处理?(DataRowAdded事件的问题)


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

主题:这种情况怎么处理?(DataRowAdded事件的问题)

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
这种情况怎么处理?(DataRowAdded事件的问题)  发帖心情 Post By:2009/11/2 15:41:00 [只看该作者]

项目中是这样的:根据目录树生成table,如果在table中增加行,自动给相关的字段写上目录树项目内容。这样,新增加的行以后也就可以跟目录树建立关联了。
现在有个问题,点击目录树、生成table时,DataRowAdded事件总是报错。我简单做了个例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目15.table


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/11/2 15:45:00 [只看该作者]

有个奇怪的现象需要说明一下:同样在DataRowAdded中设置了事件代码,fill生成table时,有时报错,有时不报错,实在找不到原因在哪?
为什么在用fill加载数据时也要执行DataRowAdded事件呢?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/2 15:55:00 [只看该作者]

Dim r as DataRow = e.DataRow
If e.DataTable.Datacols.ConTains("A") Then
    r("A") = "新增A"
    r("B") = "新增B"
    r("C") = "新增C"
    r("D") = "新增D"
End If

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/11/2 16:01:00 [只看该作者]

我也知道可能是因为在Fill前、字段名称不存在导致的。但为什么这个例子没做任何判断却能正常通过?既然这个代码能通过,说明字段就是存在的:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目15.table

请老六解释一下原因,我百思不得其解。。
[此贴子已经被作者于2009-11-2 16:02:01编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/2 16:04:00 [只看该作者]

能理解的,一个写一个读嘛。

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/11/2 16:05:00 [只看该作者]

以下是引用狐狸爸爸在2009-11-2 16:04:00的发言:
能理解的,一个写一个读嘛。

晕,一楼的例子明明是说“字段A”不存在才导致的错误嘛。但4楼的例子却表明,它事实上是存在的。
而且,同样的DataRowAdded事件代码,不同级别的目录树项目打开时,有的正常,有的提示错误。
很想弄清楚这里面的流程,避免以后再出错。

可以看看这个窗口里的事件,只要全局变量为“价格体系”时就出错,其它就正常。而事件代码都是一样的:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1.rar

[此贴子已经被作者于2009-11-2 16:15:30编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/2 16:14:00 [只看该作者]

不是列从是否存在的问题,而是Foxtable是否已经读取表结构的问题。

写要触发一系列的事件,必须在表已经完全生成,相关准备工作已经完成才行。

而读只是简单的返回值。
[此贴子已经被作者于2009-11-2 16:16:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/11/2 16:21:00 [只看该作者]

以下是引用狐狸爸爸在2009-11-2 16:14:00的发言:

写要触发一系列的事件,读只是简单的返回值。

建议fill时,不要执行DataRowAdded事件(因为这并不是真正意义上的增加行,只是加载而已)。
用RowState也无法判断,都是Added。


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/11/2 16:24:00 [只看该作者]

以下是引用狐狸爸爸在2009-11-2 16:14:00的发言:
写要触发一系列的事件,必须在表已经完全生成,相关准备工作已经完成才行。

请再看看6楼的例子,为什么唯独当全局变量为“价格体系”时就出错,其它正常。
也就是说,“区域”和“媒体名称”可以正常写,写到“起”时,就提示字段不存在了。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/2 16:29:00 [只看该作者]

在Fill的时候,不执行DataRowAdded事件算了。

 回到顶部
总数 15 1 2 下一页