我正在使用以下内容Shared Function
从 DB 中选择一个值。我担心的是,由于共享函数在所有对象之间共享,如果两个人几乎同时执行该函数,是否会发生这种情况,数据将被覆盖?
我的意思是从数据库返回的值将是最后(最近)执行的结果?
例如:
用户 1 执行函数,应该得到“abcd” 用户 2 执行函数,应该得到“1234”
用户 2 在用户 1 完成函数执行之前执行了函数。
但是两个用户都得到“1234”
Public Shared Function SelectScalar(ByVal _sql As String, ByVal _parameterNames() As String, ByVal _parameterVals() As String) As String
Dim _returnVal As String
Dim _connection As SqlConnection = Global.Connection.GetDbConnection()
Dim _command As New SqlCommand(_sql, _connection)
Dim _value As String
Try
If _parameterNames IsNot Nothing Then
For i = 0 To _parameterNames.Length - 1
_command.Parameters.AddWithValue(_parameterNames(i), _parameterVals(i))
Next
End If
_value = CStr(_command.ExecuteScalar)
_returnVal = _value
Catch ex As Exception
_returnVal = Nothing
Finally
If _connection.State = ConnectionState.Open Then
_connection.Close()
_connection.Dispose()
_command.Dispose()
End If
End Try
Return _returnVal
End Function