【发布时间】:2015-10-20 10:23:16
【问题描述】:
我对这段代码有点困惑,我不知道我在做什么,
Public Function CreateAddressDetailDb(ByVal AddressDetailList As IList(Of AddressDetail), ByVal EmployeeID As Integer) As String
Dim ReturnCode As Boolean = False
Dim Employeegeneratednumber As String = String.Empty
Dim ReturnValues As New Dictionary(Of String, Object)
Dim DbObject As Database = DatabaseFactory.CreateDatabase()
Dim DbCommand As DbCommand = DbObject.GetStoredProcCommand("usp_AddressDetial_Create")
Try
If Not AddressDetailList Is Nothing And AddressDetailList.Count > 0 Then
For Each Addressdetaulobject As AddressDetail In AddressDetailList
With Addressdetaulobject
Data.AddInParameter(DbCommand, "paEmployeeID", DbType.Int32, EmployeeID, DbObject)
Data.AddInParameter(DbCommand, "paUpdatedBy", DbType.Int16, .Updatedby, DbObject)
End With
Using DataReaderObject As IDataReader = DbObject.ExecuteReader(DbCommand)
DataReaderObject.Read()
ReturnValues("Result") = DataReaderObject.Item("Result")
ReturnValues("Employeenumber") = DataReaderObject.Item("Employeenumber")
DataReaderObject.Close()
If Employeegeneratednumber = String.Empty Or Employeegeneratednumber = "" Then
Employeegeneratednumber = CType(ReturnValues("Employeenumber"), String)
End If
End Using
DbCommand.Parameters.Clear()
Next
End If
If ReturnValues("Result").ToString().Equals("0") Then
Return Employeegeneratednumber
Else
Return String.Empty
End If
Catch ex As System.Exception
Throw
End Try
Return Employeegeneratednumber
End Function
当我插入带有 1 个地址的 Employee 时,Employeegeneratednumber 是正确的,但如果插入带有 2 个地址的 Employee,那么我会得到与当前员工无关的旧 Employeegeneratednumber。这个问题只发生在生产站点而不是开发站点
【问题讨论】:
标签: vb.net visual-studio-2012 sql-server-2012