asp.net
  • vb.net
  • 2012-04-14 67 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 2012-04-14 10:03:08

    相關問題