Search code examples
c#stored-proceduresdata-access

C# error Not all Code paths return a value, when doing just the quesry returns value just fine


I need to fill a datagrid With the information from the db, i have a dataAccess class and the normal form.cs file.When i do the query itself it returns value just fine but for some reason it doesen´t when run in code trough the sp. I´ve gotten this error in WindowsForms that i don´t quite understand what i did wrong. I´ll start by showing my dataAccess class

    public DataTable Sp_Teste()
    {

        try
        {
            ManageConnectionStateIbml1();
            SqlCommand command = new SqlCommand("SP_SELECT_DOCS_WHERE_JOBID_STATUS", 
            connectionIBML1);
            command.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            return ds.Tables[0];


        }
        catch (Exception ex)
        {
            Console.WriteLine("Erro: " + ex.Message);
        }
        finally
        {
            ManageConnectionStateIbml1();
            connectionIBML1.Close();
           
        }
       

    }

Next There is my Form.cs, since i have 3 datagridviews i seperated them with regions.

        #region DatagridViewDocumentos
        dataGridViewDocumentos.DataSource = null;
        dataGridViewDocumentos.Columns.Clear();
        dataGridViewDocumentos.Refresh();
        DataTable dt = da.Sp_Teste();
        dataGridViewDocumentos.DataSource = dt;
        dataGridViewDocumentos.ColumnCount = 4;
        DataGridViewColumn columnCaixa = dataGridViewDocumentos.Columns[0];
        columnCaixa.Width = 50;
        DataGridViewColumn columnDOC = dataGridViewDocumentos.Columns[1];
        columnDOC.Width = 50;
        DataGridViewColumn columnID = dataGridViewDocumentos.Columns[2];
        columnID.Width = 50;
        DataGridViewColumn columnPROC = dataGridViewDocumentos.Columns[3];
        columnPROC.Width = 50;
        dataGridViewDocumentos.Columns[0].Name = "Caixa";
        dataGridViewDocumentos.Columns[1].Name = "DOC";
        dataGridViewDocumentos.Columns[2].Name = "ID";
        dataGridViewDocumentos.Columns[3].Name = "Proc";

       
        #endregion

Hope someone can point out my mistake, thanks.


Solution

  • public DataTable Sp_Teste()
    {
        DataTable results = null;
        try
        {
            ManageConnectionStateIbml1();
            SqlCommand command = new SqlCommand("SP_SELECT_DOCS_WHERE_JOBID_STATUS", 
            connectionIBML1);
            command.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            results = ds.Tables[0];
    
    
        }
        catch (Exception ex)
        {
           Console.WriteLine("Erro: " + ex.Message);
        }
        finally
        {
            ManageConnectionStateIbml1();
            connectionIBML1.Close();
           
        }
        return results;
    }