苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 1849|回复: 2

下面代码运行时,偶尔报错,有时又正常的,请问啥原因?

[复制链接]

30

主题

45

帖子

191

积分

注册会员

Rank: 2

积分
191
发表于 2022-11-8 14:48:11 | 显示全部楼层 |阅读模式
                Dim str,strsql As String
                Proj.DatabaseForUserDB=Proj.SysDataFactory("UserDB")
                strsql="select * from 品名表"
                Dim dt1 As DataTableHelp=Proj.DatabaseForUserDB.ExecuteDataTableHelp(strsql)
                Dim tbl As SmGrid=Proj.CurrentSmGrid                '遍历表中所有行               
                For Each dr As RowData In tbl.View.ViewRows
                        str=dr("品名")
                        For Each dr1 As RowData In dt1.DataRows
                                str=str.Replace(dr1("非关键字"),"")
                        Next
                        dr("关键字")=str
                Next               
                messagebox.show("完成关键字处理!")

回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2022-11-8 14:56:39 | 显示全部楼层
问题就出在你引用表的方式错了。

Dim tbl As SmGrid=Proj.CurrentSmGrid                '遍历表中所有行   

可以看一下帮助文档中如何引用表:http://www.sanmugrid.com/help/in ... %94%A8%E8%A1%A8.htm
在表菜单中引用表Dim tbl As SmGrid=Proj.CurrentClickedGridMenu.BaseGrid

帮助文档中很多引用Proj.CurrentSmGrid只是为了方便表示当前是引用的一个表,你们得看在不同场景下使用合适的方式获得稳定的表对象。
回复

使用道具 举报

30

主题

45

帖子

191

积分

注册会员

Rank: 2

积分
191
 楼主| 发表于 2022-11-8 15:30:24 | 显示全部楼层
终于看懂了,没的指定表时,就没当前表。
感谢,解决问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2024-10-3 00:24 , Processed in 0.063948 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表