今天发现了一个很奇怪的现象,好好一张表,原来记得也正常的,今天突然出现了用DevExpress AspxGridView自带的更新和删除时,没有任何的作用,不会有改变。测试后发现,似乎有点和字段的数量有关,好象是字段多到一定的程度时,就会出现更新和删除失效的情况。
但是,最奇怪的是,这个字段的数量在每张表里是不一样的。有的表超过12个字段才不行,有的则是10个字段就不行,保险起见3、4个字段总是正常的。后来 到AccessDataSource的updateQuery里看,发现参数很多,如:
UPDATE [信息管理] SET [文章标题] = ?, [文章大类] = ?, [作者] = ?, [支部] = ?, [文章小类] = ?, [年度] = ?, [季度] = ?, [投稿时间] = ?, [内容] = ?, [字数] = ?, [缩略图] = ?, [备注] = ?, [审核] = ?, [外网] = ?, [ip地址] = ?, [上报时间] = ? WHERE [ID] = ? and [文章大类] = ? and [作者] = ?,........等于是是每个字段都有一个。
删除掉大部分,只留一个[ID],这个字段是主键,然后再试,正常了。
同样去DeleteQuery里删除掉其它的参数,删除也正常了。
更正:其实这就是在配置数据源时,自动生成更新与删除语句中,使用了“使用开放式并发”出现的问题,因为自动产生更新语句时,参数条件很多导致aspxgridview出现的问题,从评论的情况看,可能是BUG。目前解决的办法是按照实际的需要,适当的配置参数,一般情况下可以不使用开放式并发。我用的是9.1.3版本。