We help IT Professionals succeed at work.

Help with error Function doesn't return a value on all code paths.

453 Views
Last Modified: 2013-11-07
Hi,

In a .Net 3.5 VB.Net Windows Forms app, I have a class named data which includes a function GetDataTable (function pasted below). I call the function from a form for example like this:
Dim dtLanguages As DataTable = data.GetDataTable("spLanguagesSpoken", New SqlParameter("@empID", empID)). When I try to compile I get the warning treated as an error that the function doesn't return a value on all code paths, a null reference exception could occur at run time when the result is used.

But as my function contains the line Return dt I don't know how to resolve. Could anyone help with this?

Thanks in advance,

Louise
 Public Overloads Function GetDataTable(ByVal sp As String, ByVal ParamArray params() As SqlParameter) As DataTable 
        Try 
            Dim conn As New SqlConnection
            conn = GetConnection() 
            Dim cmd As New SqlCommand
            Dim p As SqlParameter 
            With cmd
                .Connection = conn
                .CommandType = CommandType.StoredProcedure
                .CommandText = sp
                For Each p In params
                    p = cmd.Parameters.Add(p)
                    p.Direction = ParameterDirection.Input
                Next
            End With 
            Dim da As New SqlDataAdapter
            Dim dt As New DataTable
            With da
                .SelectCommand = cmd
                .Fill(dt)
            End With 
            CloseConnection(conn)
            cmd.Dispose() 
            Return dt 
        Catch ex As Exception 
            cMail.SendErrorEmail(strUserEmail, " data GetDataTable()", ex) 
        End Try 
    End Function

Open in new window

Comment
Watch Question

CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
Fantastic, that works and I understand it for the future. Thank you.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.