Vb.net query function timeout

I have this function to return a value of a field in a table, and works fine. If  field is null returns a default value. However when I need access to this function several times then I get a timeout error. Because in practice it runs 2 times the query. I've tried some approximations to test if the value returned was null, but in some cases this validating not run as expected. How can I validate if value is null running the query only once.

Function GetField(ByVal xSqlstring As String, ByVal pDefault As Integer) As Integer
        Dim conn As SqlConnection = New SqlConnection(CBD.ConnectionStringBD)
        Dim Cmd As New SqlCommand(xSqlstring, conn)
        conn.Open()
        If IsDBNull(Cmd.ExecuteScalar()) Then
            Return pDefault
        Else
            Return Cmd.ExecuteScalar()
        End If
        conn.Close()
    End Function

Open in new window

rflorencioAsked:
Who is Participating?
 
Éric MoreauConnect With a Mentor Senior .Net ConsultantCommented:
why run it twice? store the result and handle it:

dim x as object = Cmd.ExecuteScalar()
if x is DBNull then
            Return pDefault
        Else
            Return convert.tointeger(x)
        End If
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.