【发布时间】:2020-09-14 09:32:58
【问题描述】:
我有一个从数据库调用数据的选择。我想将 Windows Server 2008 的发布转移到 2019 在某些方法中出现输入字符串格式不正确错误 因为 .Parameters.Item("RET_VAL").Value.ToString 在 2008 年服务器返回 0.7 值在 2019 年服务器返回 .7 值
Dim result As Double
Dim oCmm As New Oracle.DataAccess.Client.OracleCommand("GetPhaDrugFranshiz")
oCmm.Parameters.Add(cls_General.Create_Ora_Param("RET_VAL", ParameterDirection.ReturnValue, OracleDbType.Double))
oCmm.Parameters.Add(cls_General.Create_Ora_Param("v_patientid", ParameterDirection.Input, OracleDbType.Decimal, v_patientid.Length, v_patientid))
oCmm.Parameters.Add(cls_General.Create_Ora_Param("v_usercat", ParameterDirection.Input, OracleDbType.Char, v_usercat.Length, v_usercat))
oCmm.Parameters.Add(cls_General.Create_Ora_Param("v_cust_no", ParameterDirection.Input, OracleDbType.Char, v_cust_no.Length, v_cust_no))
oCmm.Parameters.Add(cls_General.Create_Ora_Param("v_dblinks_id", ParameterDirection.Input, OracleDbType.Decimal, v_dblinks_id.Length, v_dblinks_id))
oCmm.Parameters.Add(cls_General.Create_Ora_Param("v_cust_service_type", ParameterDirection.Input, OracleDbType.Char, cust_service_type.Length, cust_service_type))
oCmm.Parameters.Add(cls_General.Create_Ora_Param("v_drug_code", ParameterDirection.Input, OracleDbType.Char, 5, drugCode))
With oCmm
.CommandType = CommandType.StoredProcedure
.CommandTimeout = 90
.Connection = pCnn
.Transaction = Tran
.ExecuteNonQuery()
result = Double.Parse(.Parameters.Item("RET_VAL").Value.ToString)
End With
Return result
enter image description here 请帮助我找出可能导致此问题的原因。
【问题讨论】:
-
将
oCmm.ExecuteNonQuery()和result = ...移出With块。评估.ExecuteNonQuery()返回的内容(可能是-1)。 -
不是解析字符串,而是解析参数值?例如。
result = Double.Parse(.Parameters.Item("RET_VAL").Value)
标签: database windows vb.net plsql publish