Đây là sơ lược cái form mình thiết kế http://img524.imageshack.us/img524/2656/untitled1xj8.jpg Mình cho mã lớp (classID) hiển thị trên text box và tất cả các sinh viên thuộc lớp đó sẽ được hiển thị trên datagrid. Trong bảng sinhvien đương nhiên là có cột mã lớp nhưng mình không muốn hiển thị cột mã lớp trong datagrid. Khi nhấn nút Update, mình muốn lưu những thay đổi trong datagrid xuống bảng sinhvien và riêng giá trị mã lớp thì được lưu xuống bảng sinhvien từ textbox. Mong các cao thủ giúp mình thực hiện việc này. Mình đã giải quyết được phần nào vấn đề. Đây là đoạn code trong phần hàm xử lí sự kiện click của button Update boketnoi là 1 dataConnection bang là dataTable chứa thông tin về sinh viên dùng làm source cho datagrid bodocghi là 1 dataAddapter Mã: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click boketnoi.Open() Dim tam As DataTable Try tam = bang.GetChanges() Dim rw As DataRow For Each rw In tam.Rows [B][U]If IsDBNull(rw.Item("malop")) = True Then[/U][/B] rw.Item("malop") = txtMaSV.Text() End If Next If Not tam Is Nothing Then bodocghi.Update(tam) bang.AcceptChanges() Else MsgBox("Chưa có thay đổi") End If Catch ex As Exception bang.RejectChanges() boketnoi.Close() MsgBox(ex.ToString) End Try boketnoi.Close() End Sub Nhưng mình chỉ insert với update được thôi, còn khi xóa thì nó báo lỗi này System.Data.DatarowInaccessibleException: deleted row information cannot be accessed through the row và báo ở dòng gạch dưới phía trên. Ai giúp mình với !
Hàm IsDBNuLL không thể truy xuất những dòng nào có trạng thái là deleted. Cho nên nó mới báo lỗi tại dòng ì đó. Mà những dòng có trạng thái deleted thì cũng không nên thêm mã lớp vào làm gì. Cho nên sửa lại chút xíu : (ngay tại dòng gạch dưới) Mã: If r.RowState <> DataRowState.Deleted Then If IsDBNull(r.Item("malop")) = True Then r.Item("malop") = txtMaSV.Text End If End If Bao nhiêu năm rồi vẫn chưa tiến bộ được tí nào cả .
IT bao la lắm. Làm sao biết hết được. Dù sao cũng cám ơn Sensei nhiều :-*. To mod : Resolved ! Lock được rồi .