public class EmployeeDBHandler
{
public List<Employee> GetEmployees()
{
List<Employee> empList = new List<Employee>();
string sqlConnstr = Utils.GetDBConnection();
SqlConnection sqlConn = new SqlConnection(sqlConnstr);
SqlCommand sqlCmd = new SqlCommand("GetAllEmployee", sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlConn.Open();
using (SqlDataReader reader = sqlCmd.ExecuteReader())
{
while (reader.Read())
{
var emp = new Employee()
{
EId = (int)(reader["EmpID"]),
FirstName = Convert.ToString(reader["FirstName"]),
LastName = Convert.ToString(reader["LastName"])
};
empList.Add(emp);
}
}
return empList;
}
public List<Employee> FetchEmployee(int empid)
{
List<Employee> empList = new List<Employee>();
string sqlConnstr = Utils.GetDBConnection();
SqlConnection sqlConn = new SqlConnection(sqlConnstr);
SqlCommand sqlCmd = new SqlCommand("usp_FetchEmployeeDetails", sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@EmpID", empid);
sqlConn.Open();
using (SqlDataReader reader = sqlCmd.ExecuteReader())
{
while (reader.Read())
{
var emp = new Employee()
{
EId = (int)(reader["EmpID"]),
FirstName = (reader["FirstName"].ToString()),
LastName = (reader["LastName"].ToString())
};
empList.Add(emp);
}
}
return empList;
}
public void AddEmployeeInfo(string firstname, string lastname)
{
string sqlConnstr = Utils.GetDBConnection();
SqlConnection sqlConn = new SqlConnection(sqlConnstr);
SqlCommand sqlCmd = new SqlCommand("AddEmployee", sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@FirstName", firstname);
sqlCmd.Parameters.AddWithValue("@LastName", lastname);
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
sqlConn.Close();
}
public void UpdateEmployee(int empid,string firstname, string lastname)
{
string sqlConnstr = Utils.GetDBConnection();
SqlConnection sqlConn = new SqlConnection(sqlConnstr);
SqlCommand sqlCmd = new SqlCommand("usp_UpdateEmployeeDetails", sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@EmpID", empid);
sqlCmd.Parameters.AddWithValue("@FirstName", firstname);
sqlCmd.Parameters.AddWithValue("@LastName", lastname);
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
sqlConn.Close();
}
public void DeleteEmployee(int empid)
{
string sqlConnstr = Utils.GetDBConnection();
SqlConnection sqlConn = new SqlConnection(sqlConnstr);
SqlCommand sqlCmd = new SqlCommand("usp_DeleteEmployeeDetails", sqlConn);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@EmpID",empid);
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
sqlConn.Close();
}
}
I'm try to build a 3-tier arch. but I feel these code can be improvised so please review my above Data Access Layer code and give suggestions and corrections, if any, to improvise my code.