asp.net
  • vb.net
  • 2012-04-14 7 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

    関連する問題