[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Object reference not set to an instance of an object.

Posted on 2012-04-03
12
Medium Priority
?
463 Views
Last Modified: 2012-04-04
I am getting the following error from the below procedure at the high lighted line :

"Object reference not set to an instance of an object."

error line :     _CopyWorkflowItemID = command.ExecuteScalar().ToString()



Function:

 Function GetWorkFlowItemId(ByVal StID As String) As String

        Dim connection As SqlConnection = Nothing

        Try
            connection = New SqlConnection(strConnection)
            Dim command As New SqlCommand(Me.GetSPX("spx_StCopyForm_SELECT"), connection)
            command.CommandType = CommandType.StoredProcedure

            Dim StIDParam As SqlParameter = New SqlParameter("@StID", SqlDbType.VarChar, 50)
            StIDParam.Value = StID
            command.Parameters.Add(StIDParam)

            Dim StSetParam As SqlParameter = New SqlParameter("@StSet", SqlDbType.Int)
            StSetParam.Value = _StSet
            command.Parameters.Add(StSetParam)

            Dim workflowIDParam As SqlParameter = New SqlParameter("@WorkflowID", SqlDbType.VarChar, 50)
            workflowIDParam.Value = _WorkflowID
            command.Parameters.Add(workflowIDParam)
            connection.Open()
            _CopyWorkflowItemID = command.ExecuteScalar().ToString()
            If Not String.IsNullOrEmpty(_CopyWorkflowItemID) Then
                If _CopyWorkflowItemID <> _WorkflowItemID Then
                    Return _CopyWorkflowItemID
                End If
            End If
        Finally
            If Not connection Is Nothing Then connection.Close() : connection.Dispose()
        End Try

        Return _WorkflowItemID
    End Function

Open in new window



Please help me !
0
Comment
Question by:PeteEngineer
  • 5
  • 3
  • 3
  • +1
12 Comments
 
LVL 8

Author Comment

by:PeteEngineer
ID: 37800876
i think its coused because of no rows in the return of store proc
0
 
LVL 45

Expert Comment

by:AndyAinscow
ID: 37800938
Instead of
           _CopyWorkflowItemID = command.ExecuteScalar().ToString()

does this work
Object obj = command.ExecuteScalar()
if not isnull(obj) then           _CopyWorkflowItemID = obj.ToString()
0
 
LVL 25

Expert Comment

by:Rouchie
ID: 37800974
Check that spx_StCopyForm_SELECT always returns a value regardless of whether data is affected or not
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LVL 8

Author Comment

by:PeteEngineer
ID: 37801033
I found no data in table ... and nor inserting any thing into this table anywhere in the application.

So can we do an error handling here .. ?

How to do that ...

can we do by checking null of that object using a if statement

if so , what we can write in the else statement to handle this ?

Please write the code by editing my previous function posted in question.
0
 
LVL 25

Assisted Solution

by:Rouchie
Rouchie earned 1332 total points
ID: 37801063
What exactly is the purpose of spx_StCopyForm_SELECT ?
Can you post the code within it?  Once this is established we can look at where to place the handling.
0
 
LVL 8

Author Comment

by:PeteEngineer
ID: 37801107
its just a select command :



ALTER PROCEDURE [dbo].[spx_StDetailCopyForm_SELECT](
@StyleID uniqueidentifier,
@StyleSet int,
@WorkflowID uniqueidentifier)

AS 
BEGIN
	SELECT	 WorkFlowItemId 
	FROM	  pStDetailForm 
	WHERE	 StyleID = @StyleID AND 
			StyleSet = @StyleSet AND 
			WorkflowID = @WorkflowID
END

Open in new window

0
 
LVL 45

Expert Comment

by:AndyAinscow
ID: 37801140
>>can we do by checking null of that object using a if statement
See my first comment.
I'm not a VB specialist but basically split that line into two lines of code - so you can check if the command.ExecuteScalar is actually returning an object or null.
0
 
LVL 8

Author Comment

by:PeteEngineer
ID: 37801172
yes it is null ,

but i want to know what sepecally i need to handle ..what to put in else statement if it is not null
0
 
LVL 45

Assisted Solution

by:AndyAinscow
AndyAinscow earned 668 total points
ID: 37801310
?

if not isnull(obj) then          
  _CopyWorkflowItemID = obj.ToString()
  ... what you have at present
else
  msgbox "oops, nothing returned from the sql side of things"
end if
0
 
LVL 25

Accepted Solution

by:
Rouchie earned 1332 total points
ID: 37801354
Only you can answer your question.  We can write the code, but we need to know your preference, e.g. what is the code attempting to do, what should it do if it succeeds, and what if it fails?
0
 
LVL 8

Author Comment

by:PeteEngineer
ID: 37801411
ok
0
 
LVL 15

Expert Comment

by:Navneet
ID: 37804751
H!!

Where is _StSet  and _WorkflowID declared?


Thanks!
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Loops Section Overview
Suggested Courses

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question