• Thứ Năm, 13/01/2011 07:52 (GMT+7)

    Lập trình C# thêm, sửa, xóa và cập nhật record trong SQL Server 2005

    Lượt xem 31553
    Đánh giá

    Câu hỏi :

    Tôi lập trình C#, thiết kế form để đổ data từ SQL 2005 ra datagridview trên form nhưng không biết cách để thao tác thêm, sửa, xóa và cập nhật record.



    Trả lời :

    Khi lập trình truy xuất database trong môi trường .Net, cách tốt nhất là dùng các đối tượng ADO .Net, thí dụ đối tượng DataGridView có thể được dùng để xem/hiệu chỉnh dữ liệu từ 1 table dữ liệu trong 1 database. Trong môi trường Visual Studio .Net, khi bạn thiết kế trực quan 1 đối tượng DataGridView để xem/hiệu chỉnh dữ liệu từ 1 table, máy sẽ tạo ra 1 số đối tượng sau:

    DataGridView <--> BindingSource <--> DataSet <--> DataAdapter <--> Database trên Database Server

    Để hiển thị dữ liệu của 1 table (hay kết quả của 1 lệnh truy vấn), máy sẽ thực hiện tác vụ Fill của đối tượng DataAdapter, tác vụ này sẽ load dữ liệu liên quan từ database server về và để tạm trên đối tượng DataSet, nội dung tạm này sẽ được liên kết đến đối tượng DataGridView để nó hiển thị lên màn hình. 

    Khi người dùng hiệu chỉnh/thêm/bớt record trực tiếp trên DataGridView, nội dung được hiệu chỉnh/thêm/bớt chỉ được chứa cục bộ trong DataSet tương ứng, chứ chưa được lưu lên database. Muốn lưu thông tin hiện có trong DataGridView (tức là trong DataSet) lên database, chương trình phải gọi tường minh tác vụ Update của đối tượng DataAdapter.

    Để thấy rõ ràng và cụ thể các ý tưởng nêu trên, chúng tôi giới thiệu qui trình điển hình để xây dựng ứng dụng VC# đơn giản demo việc hiệu chỉnh/thêm/bớt record của bảng dữ liệu trực tiếp bằng DataGridView như sau:

    1. Tạo mới 1 database (thí dụ tên là DBTest) trên SQL Server 2005, tạo 1 table mới (thí dụ là MyTable) trong database, mỗi record có 1 số field data cần thiết, trong đó có ít nhất 1 khóa chính (primary key) rồi tạo mới một số record trong bảng MyTable. Bạn có thể thực hiện công việc của bước 1 này dễ dàng và trực quan thông qua tiện ích "SQL Server Management Studio Express". Bạn có thể download tiện ích này trên Internet và cài vào máy trước khi dùng nó.

    2. Chạy Visual Studio .Net (thí dụ 2005). Tạo Project quản lý ứng dụng bằng cách chọn menu File.New Project, khi cửa sổ New Project hiển thị, chọn mục Visual C# trong cây Project Types, chọn icon "Windows Application", nhập tên Project (thí dụ là DBTest) vào textbox Name rồi nhấn button OK.

    3. Khi cửa sổ thiết kế Form ứng dụng rỗng hiển thị, thay đổi kích thước form theo yêu cầu, dời chuột về Toolbox để hiển thị nó, duyệt tìm và chọn mục DataGridView rồi vẽ nó lên form ở vị trí và kích thước mong muốn. Tương tự, vẽ 1 button ở dưới DataGridView. Kết quả cửa sổ có dạng:

    4. Chọn lại đối tượng button để hiển thị cửa sổ thuộc tính của nó, tìm và hiệu chỉnh thuộc tính (Name) thành btnSave, thuộc tính Text = "Luu ket qua cap nhat". 

    5. Chọn lại đối tượng DataGridView để hiển thị cửa sổ thuộc tính của nó, tìm và hiệu chỉnh thuộc tính (Name) thành DGView. tìm và chọn thuộc tính Data Source, icon chứa dấu chỉ xuống hiển thị trong field giá trị bên phải, nhấn chuột vào mũi tên chỉ xuống để hiển thị danh sách các Data Source đã tạo trong Project (lúc này chưa có), nhấn chuột vào mục "Add Project Data Source" để hiển thị cửa sổ Wizard giúp bạn khai báo trực quan Data Source được dùng với đối tượng DataGridView. Chọn icon Database rồi button Next để hiển thị cửa sổ kế tiếp. Nhấn button New Connection để hiển thị cửa sổ "Add Connection", lần lượt khai báo các thông tin trong cửa sổ này như data source, server name, các thông tin để login, chọn tên database cần truy xuất, nhấn button "Test Connection" để kiểm tra xem có truy xuất được không. Nếu không được thì kiểm tra và hiệu chỉnh các thông số đã nhập sao cho việc truy xuất vào database thành công rồi nhấn chuột vào button OK để đóng cửa sổ "Add Connection" lại. Khi cửa sổ Wizard hiển thị lại, bạn chọn checkbox "Yes,…" rồi nhấn button Next để chuyển sang cửa sổ Wizard kế tiếp. Nhấn button Next lần nữa để chuyển sang cửa sổ Wizard kế tiếp, cửa sổ này hiển thị cây các tài nguyên trong database, mở rộng mục Tables, duyệt tìm và chọn tên table mà bạn muốn làm việc (MyTable). Nhấn chuột vào button Finish để hoàn tất việc định nghĩa data source được dùng trong đối tượng DataGridView. Quan sát trong cửa sổ thiết kế form, bạn thấy 3 đối tượng mới được tạo ra: 1 Dataset có tên là DBTestDataSet, 1 TableAdapter có tên là myTableTableAdapter, 1 BindingSource có tên là myTableBindingSource.

    6. Ấn kép chuột vào button "Luu ket qua…" để tạo hàm xử lý sự kiện click chuột trên nó rồi viết code sau đây:

    private void btnSave_Click(object sender, EventArgs e) {
    myTableTableAdapter.Update(DBTestDataSet.MyTable);
    }

    7. Chọn menu Debug.Start Debugging để dịch và chạy ứng dụng. Nếu bạn thực hiện đúng mọi bước trên thì chương trình không có lỗi và sẽ chạy tốt. Bạn có thể thay đổi bất kỳ field nào của record đã có trong table, bạn có thể thêm record mới vào hàng cuối của đối tượng DataGridView. Tuy nhiên nội dung hiệu chỉnh/thêm/bớt thông tin trên DataGridView chỉ được chứa cục bộ trong đối tượng DataSet tương ứng. Mỗi lần muốn lưu thông tin hiện có trong DataGridView (tức trong DataSet) lên Database Server, bạn phải nhấn chuột vào button "Luu ket qua…" để kích hoạt hàm btnSave_Click chạy và hàng lệnh trong thân của hàm này sẽ lưu kết quả lên database.

    Toàn bộ Project VC# có trong Thư viện Chương trình mẫu, file DBTest.zip, bạn có thể tải về và tham khảo.

    Ý kiến phản hồi và bình luận      Gởi ý kiến của bạn ?
    Chuyên mục: Cơ sở dữ liệu