我正在使用SqlClient.SqlCommand对象在我的数据库上运行一些存储的proc。通常,当我通过查询分析器手动运行这些程序时,它们最多需要15分钟才能完成。

所以很明显,当我使用SqlCommand对象运行它们时,我得到了SqlCommand超时。

我知道我可以将timeout属性设置为一个很高的值,但是我想知道是否还有一种方法可以启动proc并断开连接。我不需要返回值。

有什么建议么?我对优化每个sp的处理时间不感兴趣,只是试图确定是否存在“设置并忘记它”选项。

这是SqlCommand对象的内容:

using (SqlCommand cmd = new SqlCommand(@"update tbl_SYS_DATE set RPT_DATE = @inputDate
                                                    exec sp_Get_Bp_Data1
                                                    exec sp_Get_Bp_Data2
                                                    exec sp_Get_Bp_Data3
                                                    exec sp_channel_data1
                                                    exec sp_channel_data2
                                                    exec sp_channel_data3
                                                    ", con))

最佳答案

您可以使用异步方法,例如BeginExecuteNonQuery。为此,将忽略超时。

关于c# - SqlCommand对象-设置并忘记它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1644360/

10-12 01:41