设置CommandTimeout = 0了为什么执行存储过程还会出现超时错误?请帮忙进来看。
我的程序代码片段如下:要执行一个数据库“存储过程”
' compute_cost是一个数据库存储过程
cmd = New SqlClient.SqlCommand("compute_cost", lyhconn)
cmd.CommandType = CommandType.StoredProcedure
'定义存储过程参数
Dim pa As New SqlClient.SqlParameter
pa.ParameterName = "@mo_no"
pa.Direction = ParameterDirection.Input
pa.DbType = DbType.String
pa.Value = row.Item("mo_no")
cmd.Parameters.Add(pa)
pa = New SqlClient.SqlParameter
pa.ParameterName = "@mo_no_list"
pa.Direction = ParameterDirection.InputOutput
pa.DbType = DbType.String
pa.Value = row.Item("mo_no")
cmd.Parameters.Add(pa)
pa = New SqlClient.SqlParameter
pa.ParameterName = "@compno_db"
pa.Direction = ParameterDirection.Input
pa.DbType = DbType.String
pa.Value = row.Item("compno")
cmd.Parameters.Add(pa)
pa = New SqlClient.SqlParameter
pa.ParameterName = "@sum_cst_out"
pa.Direction = ParameterDirection.Output
pa.DbType = DbType.Decimal
cmd.Parameters.Add(pa)
Try
cmd.CommandTimeout = 0
cmd.ExecuteNonQuery()
Catch ex As Exception
'****错误高发点注意****************
'多次出现左误提示'超时已过期'所以将cmd.CommandTimeout = 0
MsgBox("计算阶段成本!" & ex.Message & "当前制令单:" & row.Item("mo_no"), MsgBoxStyle.OKOnly, "成本计算循环体****错误高发点注意")
End Try
我的错误现象是不是每次都出现超时错误,只是有时候出现错误提示“超时时间已到,在操作完成之前超时时间已过或服务器未响应。”,不知道是什么原因,如何避免超时错误?我的存储过程应该是没有问题,因为错误不是总是发生只是偶尔。