Cần giúp đỡ về datagrid và textbox trong VB.NET

Great Hades

T.E.T.Я.I.S
Lão Làng GVN
Đâ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 !
 
Ok , do sơ xuất kỹ thuật , topic này vẫn tiếp tục được mở ra để thảo luận !

Sorry chủ topic !
 
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 :D.
 
Back
Top