Foxtable(狐表)用户栏目专家坐堂 → [求助]同一个存储过程,直接执行与项目中调用得出的结果不一致?


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

主题:[求助]同一个存储过程,直接执行与项目中调用得出的结果不一致?

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110762 积分:563742 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 12:10:00 [显示全部帖子]

看不出什么问题。

temp_pjcom是一个临时表?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110762 积分:563742 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 13:34:00 [显示全部帖子]

导出部分表格数据和代码发上来测试一下

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110762 积分:563742 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 16:45:00 [显示全部帖子]

测试了一下,应该是一个bug,存储过程如果有插入或者更新的代码,cmd.ExecuteReader无法返回表格数据 。

已反馈

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110762 积分:563742 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/5 9:22:00 [显示全部帖子]

开发人员经过详细测试,确定这个是.net的oledb驱动自身的bug,暂时没有办法处理。

目前解决方法是:
1、分2步,把返回表格数据的sql提取出来,另外执行,也就是先执行存储过程更改数据,在另外执行sql返回表格数据
2、使用其它.net数据库驱动处理,比如:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=159738&replyID=&skin=1,测试代码

Dim db = HySql.DataBaseFactory.CreateDatabase()     
Dim dt As System.Data.DataTable = db.ExecuteDataSet(System.Data.CommandType.StoredProcedure, "p_F_AUTHNS",HySql.ParameterPair.GetPair("BUSERID", "1234567")).Tables(0)      

MessageBox.show("Count=" & dt.Rows.Count)
If dt.rows.count > 0 Then 
    'MessageBox.Show("kk")
    Tables("fr_test_Tblselect").DataSource = dt
Else
    'MessageBox.Show("123")
End If

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110762 积分:563742 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/5 12:10:00 [显示全部帖子]

在调用有插入、更新的存储过程的地方用新语法就行。其实我更建议使用第一种方法,多访问一次数据库而已

 回到顶部