![]() |
1
2
你怎么叫这个程序?我猜您正在使用executeNonQuery()调用该过程。尝试使用executescalar()调用该过程,并按如下方式修改该过程:
这将导致.NET中的数据执行代码在继续之前等待过程完成。如果不希望用户界面在过程执行期间“挂起”,请使用BackgroundWorkerProcess或类似的方法在单独的线程上运行查询,并查找完成的回调,以使用结果更新用户界面。 |
![]() |
2
2
您也可以尝试使用
RETURN statement
在子存储过程中,可以使用该存储过程将结果代码返回给父过程。您可以通过以下方式调用子过程:
|
![]() |
3
2
我从未听说存储过程在后台执行时可能返回调用方。 事实上,我会尽量说我不相信会发生这种事。如果您看到了UI和您认为SP应该做的事情之间的区别,那么我相信它有不同的原因。 连接字符串中是否有async=true?sp是使用beginExecuteReader执行的还是开始其他操作? |
![]() |
4
0
冒着听起来很简单的风险,我建议您创建一个可以存储存储过程状态的表。不知何故,可以指示整个流程和子流程已完成执行的标志。 您可以从UI中查询这个,以查看是否通过轮询此状态代码完成了这些操作。 |
![]() |
5
0
不。 存储过程不知道其调用方是UI应用程序。存储过程中没有任何可以影响UI应用程序行为的内容。 很可能UI应用程序正在一个连接上调用存储过程,然后在另一个连接上刷新其数据。有很多方法可以让UI延迟刷新,但是我要推的是应该有一个单独的数据库连接。 |
![]() |
6
0
就个人而言,我更关心的是替换那些光标,而不是将其转换为函数。 在检查前一个进程的有效返回代码之前,我不会运行最后一个进程(如果前一个进程中的一个进程死了,这件事就真的很麻烦了!) 还要考虑这是否都应该在事务中(这些进程是否更改表中的数据?) (我是唯一一个觉得有趣的人吗?你有一个程序来运行这个程序,不做任何事情?) |
![]() |
Wadu Hek · 查找列表中唯一的重复项 2 年前 |
![]() |
Johan Klemantan · 带条件的嵌套循环中的lambda 2 年前 |
![]() |
Sudhanva c · 如何提高编码技能?[已关闭] 7 年前 |
![]() |
Arie Wijaya · 无法将伪代码转换为java[已关闭] 7 年前 |
![]() |
Adrian Rotama · 将十进制四舍五入到最接近的十次方的轨道 7 年前 |
|
Sawbonz · 为什么If语句不适用于Python和Pygame 7 年前 |
![]() |
Kevin · 根据第一个组合框中插入的数字生成组合框 7 年前 |