15
I would like to understand why my code is causing the error
not all code paths Return a value
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApplication1
{
    public partial class painel : Form
    {
        public painel()
        {
            InitializeComponent();
        }
        public class componente
        {
            public int ID
            {
                get { return ID; }
                set { ID = value; }
            }
            private string nome;
            public string NOME
            {
                get { return nome; }
                set { nome = value; }
            }
            private string local_armazenamento;
            public string LOCAL_ARMAZENAMENTO
            {
                get { return local_armazenamento; }
                set { local_armazenamento = value; }
            }
            private string descricao;
            public string DESCRICAO
            {
                get { return descricao; }
                set { descricao = value; }
            }
        }
        private List<componente> ObterLista(string nome_componente)
        {
            MySqlConnection caminho = new MySqlConnection(@"SERVER=LOCALHOST;DATABASE=portfolio;UID=root;PASSWORD=vertrigo");
            List<componente> lista = new List<componente>();
            string query = "SELECT * FROM componentes ";
            MySqlCommand cmd = new MySqlCommand(query, caminho);
            caminho.Open();
            MySqlDataReader leitor = cmd.ExecuteReader();
            if (leitor.HasRows)
            {
                while (leitor.Read())
                {
                    componente componente = new componente();
                    componente.ID = Convert.ToInt32(leitor["id"]);
                    componente.NOME = leitor["nome"].ToString();
                    componente.LOCAL_ARMAZENAMENTO = leitor["local_armazenamento"].ToString();
                    componente.DESCRICAO = leitor["descricao"].ToString();
                    lista.Add(componente);
                }
                caminho.Close();
                return lista;
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource = ObterLista(button1.Text);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = ObterLista(button1.Text);
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
        }
    }
}
Related: Return inside Try... catch does not work
– Guilherme Nascimento