asp.net
  • vb.net
  • 2012-04-14 2 views 0 likes 
    0
    Dim _tableBackLogs As System.Data.DataTable 
    
    Do While i - 2 > 0 
    _tableBackLogs = Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i - 2 & "'") 
    i = i - 2 
    Loop 
    

    이렇게하면 DataTable의 이전 데이터가 바뀝니다. 이전 데이터를 유지하고자합니다. 즉, 이전 행을 대체하는 DataTable에 새 행을 추가하려고합니다.이전 행을 손실하지 않고 DataTable에 행 추가

    답변

    1

    는 다음과 같이 코드를 교체합니다.

    Dim _tableBackLogs As New System.Data.DataTable 
    
    Do While i - 2 > 0 
        _tableBackLogs.Merge(Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i - 2 & "'")) 
        i = i - 2 
    Loop 
    
    0

    사용 병합 방법

    Dim _tableBackLogs As System.Data.DataTable 
    
    Do While i - 2 > 0 
    _tableBackLogs.Merge(Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i - 2 & "'")) 
    i = i - 2 
    Loop 
    
    +0

    '변수 _tableBackLogs는 값이 할당되기 전에 사용됩니다. '** 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. ** – user1150440

    관련 문제