20 tháng 6, 2013

Thêm, xóa, sửa trực tiếp trên datagridview bằng ngôn ngữ C# (Quản lý sinh viên)


Vừa qua, tôi đã làm xong đồ án môn học với đề tài viết chương trình quản lý sinh viên bằng ngôn ngữ C#. Và nhận được số điểm cũng tàm tạm. Tiện đây, tôi muốn chia sẻ với các bạn đề tài này với nội dung là thêm, xóa, sửa trực tiếp trên datagridview bằng ngôn ngữ C#. Mục đích chia sẻ bởi vì trong quá trình tôi làm đồ án, tôi tìm kiếm trên mạng chỉ có một ít nguồn tham khảo - rất khó. Hy vọng, tôi chia sẻ nó trên bài viết này sẽ giúp tôi có thể tối ưu chương trình hơn và cũng giúp các bạn có một nguồn tham khảo tương đối.

Chương trình kết nối với SQL Server (2000), các bạn tự tạo cơ sở dữ liệu quản lý sinh viên và tham khảo nguồn code trong bài viết dưới đây để hoàn thiện bài làm của mình nhé.

Form Sinh viên:


Khai báo kết nối sql bằng cách thêm dòng lệnh:
using System.Data.SqlClient;


Khai báo các biến toàn cục để kết nối dữ liệu SQL bằng cách thêm các dòng lệnh trong class Sinhvien:
string connectionString;
SqlConnection conn = new SqlConnection();
DataSet ds;
SqlDataAdapter da;


Viết hàm LoadData() để đưa dữ liệu lên dataGridViewSinhvien:
private void LoadData()
        {
            
            connectionString = "Data Source=JackyChan;Initial Catalog=QLSV;Integrated Security=True";
            ds = new DataSet();
            string query = "Select * from Khoa";
            try
            {
                SqlConnection conn = new SqlConnection(connectionString);
                da = new SqlDataAdapter(query, conn);
                da.Fill(ds, "Khoa");
                (dataGridViewSinhvien.Columns["Makhoa"] as DataGridViewComboBoxColumn).DataSource = ds.Tables["Khoa"];
                (dataGridViewSinhvien.Columns["Makhoa"] as DataGridViewComboBoxColumn).DisplayMember = "Makhoa";
                (dataGridViewSinhvien.Columns["Makhoa"] as DataGridViewComboBoxColumn).ValueMember = "Makhoa";
                da.SelectCommand.CommandText = "Select * from Sinhvien";
                da.Fill(ds, "Sinhvien");
                dataGridViewSinhvien.DataSource = ds.Tables["Sinhvien"];

            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Gọi hàm LoadData() trong Form load bằng cách nhấp đúp chuột vào Form Sinh viên, sau đó thêm vào dòng lệnh:
private void Sinhvien_Load(object sender, EventArgs e)
        {
            LoadData();   
        }

Nhấp đúp chuột vào buttonLuu và viết các lệnh như sau:
private void buttonLuu_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conn = new SqlConnection(connectionString);
                conn.Open();
                int CurrentIndex = dataGridViewSinhvien.CurrentCell.RowIndex;
                string Masv = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[0].Value.ToString());
                string Holot = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[1].Value.ToString());
                string Ten = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[2].Value.ToString());
                string Phai = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[3].Value.ToString());
                string Ngaysinh = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[4].Value.ToString());
                string Makhoa = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[5].Value.ToString());
                string insertStr = "Insert into Sinhvien Values('" + Masv + "','" + Holot + "','" + Ten + "','" + Phai + "','" + Ngaysinh + "','" + Makhoa + "')";
                SqlCommand insertCmd = new SqlCommand(insertStr, conn);
                insertCmd.CommandType = CommandType.Text;
                insertCmd.ExecuteNonQuery();
                LoadData();
                MessageBox.Show("Bạn đã lưu thành công!", "THÔNG BÁO", MessageBoxButtons.OK);
                conn.Close();
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Nhấp đúp chuột vào buttonXoa và viết các lệnh như sau:
private void buttonXoa_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conn = new SqlConnection(connectionString);
                conn.Open();
                int CurrentIndex = dataGridViewSinhvien.CurrentCell.RowIndex;
                string   Masv =Convert.ToString (dataGridViewSinhvien.Rows[CurrentIndex].Cells[0].Value.ToString ());
                string deletedStr = "Delete from Sinhvien where Masv='" + Masv + "'";
                SqlCommand deletedCmd = new SqlCommand(deletedStr, conn);
                deletedCmd.CommandType = CommandType.Text;
                deletedCmd.ExecuteNonQuery();
                da.Update(ds,"Sinhvien");
                LoadData();
                MessageBox.Show("Bạn đã xóa thành công!", "THÔNG BÁO", MessageBoxButtons.OK);
                conn.Close();
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Nhấp đúp chuột vào buttonSua và viết các lệnh sau:
private void buttonSua_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conn = new SqlConnection(connectionString);
                conn.Open();
                int CurrentIndex = dataGridViewSinhvien.CurrentCell.RowIndex;
                string Masv = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[0].Value.ToString());
                string Holot = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[1].Value.ToString());
                string Ten = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[2].Value.ToString());
                string Phai = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[3].Value.ToString());
                string Ngaysinh = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[4].Value.ToString());
                string Makhoa = Convert.ToString(dataGridViewSinhvien.Rows[CurrentIndex].Cells[5].Value.ToString());
                string updateStr = "Update Sinhvien set Masv='" + Masv + "',Holot='" + Holot + "',Ten='" + Ten + "',Phai='" + Phai + "',Ngaysinh='" + Ngaysinh + "',Makhoa='" + Makhoa + "' where Masv='" + Masv + "'";
                SqlCommand updateCmd = new SqlCommand(updateStr, conn);
                updateCmd.CommandType = CommandType.Text;
                updateCmd.ExecuteNonQuery();
                LoadData();
                MessageBox.Show("Bạn đã sửa thành công!", "THÔNG BÁO", MessageBoxButtons.OK);
                conn.Close();
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Nhấp đúp chuột vào buttonThoat và thêm các dòng lệnh sau:
Quanlysinhvien _Quanlysinhvien = new  Quanlysinhvien();
 _Quanlysinhvien.Show();
 Hide();

Tượng tự, bạn cũng tham khảo và hoàn thiện cho các form còn lại trong chương trình quản lý sinh viên. Nếu các bạn có nhu cầu tham khảo thêm, có thể tải tài liệu tham khảo của tôi tại đây.

Ngoài ra, các bạn có thể comment hoặc gửi mail liên hệ cho tôi. Tôi sẵn sàng trao đổi với bạn bất cứ thời gian nào.

Lưu ý: Yêu cầu ghi rõ nguồn http://www.vnwallet.com khi sao chép nội dung này.

Tác giả: Đỗ Thanh Trọng