/** *<summary> * This method gets the student data from the DB * </summary>summary> * * @Method GetStudents **/ protected void GetStudents() { //connect to EF using (ContosoConnection db = new ContosoConnection()) { string SortString = Session["SortColumn"].ToString() + " " + Session["SortDirection"].ToString(); //query the Students Table using EF and LINQ var Students = (from allStudents in db.Students select allStudents); //bind the result to the GridView StudentsGridView.DataSource = Students.AsQueryable().OrderBy(SortString).ToList(); StudentsGridView.DataBind(); } }
protected void GetStudent() { //populate the form with existing data from the database int StudentID = Convert.ToInt32(Request.QueryString["StudentID"]); using (ContosoConnection db = new ContosoConnection()) { //populate a student object instance with the StudentID from the URL Parameter Student updatedStudent = (from student in db.Students where student.StudentID == StudentID select student).FirstOrDefault(); //map the student properties to the form controls if (updatedStudent != null) { LastNameTextBox.Text = updatedStudent.LastName; FirstNameTextBox.Text = updatedStudent.FirstMidName; EnrollmentDateTextBox.Text = updatedStudent.EnrollmentDate.ToString("yyyy-MM-dd"); } } }
protected void SaveButton_Click(object sender, EventArgs e) { //connect to EF using (ContosoConnection db = new ContosoConnection()) { //use student model to create a new student object and save a new record Student newStudent = new Student(); int StudentID = 0; //url contains a student id if (Request.QueryString.Count > 0) { //get id from url StudentID = Convert.ToInt32(Request.QueryString["StudentID"]); //get the current student from EF DB newStudent = (from student in db.Students where student.StudentID == StudentID select student).FirstOrDefault(); } //add data to the newStudent record newStudent.LastName = LastNameTextBox.Text.ToString(); newStudent.FirstMidName = FirstNameTextBox.Text.ToString(); newStudent.EnrollmentDate = Convert.ToDateTime(EnrollmentDateTextBox.Text); //use LINQ and ADO.NET to add / insert new student into the database if (StudentID == 0) { db.Students.Add(newStudent); } //save changes - also updates and inserts db.SaveChanges(); //redirect back to updated students page Response.Redirect("~/Contoso/Students.aspx"); } }
/// <summary> /// This event handler deletes a student from the db using EF /// </summary> /// /// <param name="sender">{object} sender</param> /// <param name="e">{GridViewDeleteEventArgs} e</param> /// /// @method StudentsGridView_RowDeleting protected void StudentsGridView_RowDeleting(object sender, GridViewDeleteEventArgs e) { //store which row was clicked int selectedRow = e.RowIndex; //get the selected StudentID using the Grid's DataKey collection int StudentID = Convert.ToInt32(StudentsGridView.DataKeys[selectedRow].Values["StudentID"]); try { //use EF to find the selected student in the DB and remove it using (ContosoConnection db = new ContosoConnection()) { //create object of student class and store the query string inside of it Student deletedStudent = (from studentRecords in db.Students where studentRecords.StudentID == StudentID select studentRecords).FirstOrDefault(); //remove the selected student from the db db.Students.Remove(deletedStudent); //save changes to db db.SaveChanges(); //refresh the grid this.GetStudents(); } } catch (Exception err) { //error message } }