我在get属性处收到错误,错误为"业务层.雇员业务层.雇员.get":并非所有代码路径都返回值



我在get属性中遇到一个错误,即并非所有代码路径都返回值。

namespace BusinessLayer
    {
        class EmployeeBusinessLayer
        {
            public IEnumerable<Employee> Employees
            {
                get // Here i am getting an error that not all code paths return a value
                {
                    string ConnectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                    List<Employee> employees = new List<Employee>();
                    using (SqlConnection con = new SqlConnection(ConnectionString))
                    {
                        SqlCommand cmd = new SqlCommand("spGetEmployees", con);
                        cmd.CommandType = CommandType.StoredProcedure;
                        con.Open();
                        SqlDataReader rdr = cmd.ExecuteReader();
                        while (rdr.Read())
                        {
                            Employee employee = new Employee();
                            employee.Emp_Id = Convert.ToInt32(rdr["Emp_Id"]);
                            employee.Emp_Name = Convert.ToString(rdr["Emp_Name"]);
                            employee.Designation = Convert.ToString(rdr["Designation"]);
                            employee.City = Convert.ToString(rdr["City"]);
                            employee.State = Convert.ToString(rdr["State"]);
                            employee.Country = Convert.ToString(rdr["Country"]);
                            employees.Add(employee);
                        }
                    }
                }
            }
        }
    }

错误消息可以从字面上理解:

namespace BusinessLayer
    {
        class EmployeeBusinessLayer
        {
            public IEnumerable<Employee> Employees
            {
                get // Here i am getting an error that not all code paths return a value
                {
                    string ConnectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                    List<Employee> employees = new List<Employee>();
                    using (SqlConnection con = new SqlConnection(ConnectionString))
                    {
                        SqlCommand cmd = new SqlCommand("spGetEmployees", con);
                        cmd.CommandType = CommandType.StoredProcedure;
                        con.Open();
                        SqlDataReader rdr = cmd.ExecuteReader();
                        while (rdr.Read())
                        {
                            Employee employee = new Employee();
                            employee.Emp_Id = Convert.ToInt32(rdr["Emp_Id"]);
                            employee.Emp_Name = Convert.ToString(rdr["Emp_Name"]);
                            employee.Designation = Convert.ToString(rdr["Designation"]);
                            employee.City = Convert.ToString(rdr["City"]);
                            employee.State = Convert.ToString(rdr["State"]);
                            employee.Country = Convert.ToString(rdr["Country"]);
                            employees.Add(employee);
                        }
                    }
                  return employees;
                }
            }
        }
    }

需要归还员工。此外,您应该Close()并处理您的阅读器。

using(IDataReader rdr = cmd.ExecuteReader())
{
 while (rdr.Read())
 {
   Employee employee = new Employee();
   employee.Emp_Id = Convert.ToInt32(rdr["Emp_Id"]);
   ...
   employees.Add(employee);
  }
  rdr.Close();
}
return employees;

最新更新