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

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi Great Hades, 5/2/07.

  1. Great Hades

    Great Hades T.E.T.Я.I.S

    Tham gia ngày:
    14/1/04
    Bài viết:
    515
    Nơi ở:
    HCM Underground.
    Đâ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 !
     
  2. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator GVN Veteran

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    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 !
     
  3. ryu

    ryu T.E.T.Я.I.S

    Tham gia ngày:
    27/4/02
    Bài viết:
    549
  4. Sư phụ

    Sư phụ Youtube Master Race

    Tham gia ngày:
    29/12/03
    Bài viết:
    11
    Nơi ở:
    Hockaido-Tokyo-HCM
    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ả ;)).
     
  5. Great Hades

    Great Hades T.E.T.Я.I.S

    Tham gia ngày:
    14/1/04
    Bài viết:
    515
    Nơi ở:
    HCM Underground.
    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.
     

Chia sẻ trang này