找回密码
 立即注册

QQ登录

只需一步,快速开始

luoqingyu

注册会员

15

主题

31

帖子

92

积分

注册会员

积分
92

活字格认证

luoqingyu
注册会员   /  发表于:2015-7-14 09:27  /   查看:7701  /  回复:13
表格用程序添行    spread1.Sheets(0).AddRows(5, 1),又给cell编程添加数据后    spread1.Sheets(0).SetValue(5, 0, "ABCE"),再更新到数据库出错。数据库提示,显示该CELL的内容是NULL(实际表格显示了数据“ABCD").但若添加后,当我再手动编辑CELL后,再更新到数据库,就OK。请问,是什么原因?谢谢!

13 个回复

正序浏览
frank.zhang
社区贡献组   /  发表于:2015-7-24 09:42:00
14#
您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-16 11:01:00
13#
您好,
您可以先尝试一下,如果问题没有解决,我们可以继续为您调查。
回复 使用道具 举报
luoqingyu
注册会员   /  发表于:2015-7-15 20:41:00
12#
才下载的V8.01测试版。我估计,与我的数据库有关系,到时,我用ACESS数据库看看
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-15 17:40:00
11#
您好,
我提供的例子程序,没有出现您描述的问题。
您使用的版本是多少?
回复 使用道具 举报
luoqingyu
注册会员   /  发表于:2015-7-15 14:03:00
10#
多谢回复。
其实,fpSpread1.Sheets[0].AddRows(5, 1);
fpSpread1.Sheets[0].SetValue(5, 0, 123);
都正常,表格也能显示。主要是该两句执行完毕后,再更新到数据库时,显示是空(本应该是“123”)。只有数据点击变成编辑模式时,再更新数据库就OK了。
后来,我用程序编程该单元格为编辑模式。
问题是解决了。但心里怪怪的。总觉得不应该这样。
我的平台是VS2013,SQL

     Dim jj As Integer
        jj = ProjectList.Sheets(0).GetLastNonEmptyRow(1)
        ProjectList.Sheets(0).AddRows(jj + 1, 1)
        ' ProjectList.Sheets(0).AddUnboundRows(jj + 1, 1)’不绑定到数据库
        'ProjectList.Sheets(0).SetValue(jj + 1, 0, "AB2CE")

        ProjectList.Sheets(0).SetText(jj + 1, 0, "AB32CE")


        '备忘:手动修改单元格和编程修改单元是有别的,表格显示数据与内存不一致。这是Spread的BUG只有双击单元格,数据才能更新到记录集
        '这里采用编程模拟双击单元格
        ProjectList.Sheets(0).SetActiveCell(jj + 1, 0)
        ProjectList.EditMode = True
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-14 14:55:00
9#
您好,
我将例子程序上传至论坛,您看下是否遗漏。


Spread_Win_DataSource.zip (230.38 KB, 下载次数: 240)
回复 使用道具 举报
luoqingyu
注册会员   /  发表于:2015-7-14 11:31:00
8#
简单点说。就是fpSpread1.Sheets[0].AddRows(5, 1);后,
用鼠标填充单元格数据,就正常更新到数据库。
若用
fpSpread1.Sheets[0].SetValue(5, 0, 123);
就不行(但表格单元能正常显示123)。,
回复 使用道具 举报
luoqingyu
注册会员   /  发表于:2015-7-14 11:28:00
7#
目前的问题,是fpSpread1.Sheets[0].AddRows(5, 1);
fpSpread1.Sheets[0].SetValue(5, 0, 123);
这两个语句后,虽然表上显示的是单元后更新的值。
(我用GEVALUE也看了。返回也有数),
但要鼠标点击一下单元格后,这个值才能更新到帮定的数据集。
我觉得,是不是单元格手动编辑和程序赋值是有区别的。
麻烦看看,是否有什么刷新类的函数。

谢谢。
回复 使用道具 举报
luoqingyu
注册会员   /  发表于:2015-7-14 11:10:00
6#
在老版本中,用程序修改单元格内容后,必须用ss_Detail.SetCellDirtyFlag(-1, ss_Detail.Row, True)标记后才能是真正能保存。
现在的.NET的版本是不是也有类似的函数?我没找到?
谢谢。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部