转到数据集中的下一个可用记录

时间:2012-05-31 14:21:41

标签: asp.net .net vb.net

我有以下代码转到下一个要处理的可用记录。

        Dim ds As New DataSet
        Dim strListType As String = Request.QueryString("ListType")
        Dim strStatusFilter As String = ""
        Select Case strListType
            Case "newmember"
                strStatusFilter = "Status_Ind in (1,4,6,8) and IsMember_Ind=1"
            Case "nonmember"
                strStatusFilter = "Status_Ind in (1,4,6,8) and IsMember_Ind=1"
            End Select

        ds = objClass.List(0, 10, "Due_Dt, Joined_Date ASC", "", strStatusFilter)

       'go to the next record
        If ds.Tables(0).Rows.Count > 0 Then
            Server.Transfer("Request.aspx?Request_ID=" & ds.Tables(0).Rows(0).Item("Request_ID") & "&ListType=" & strListType)
        Else
            Server.Transfer("List.aspx?Status=NewMember")
        End If

ObjClass.List是一种用于运行视图和过滤数据的方法。我在两列due_dt和joined_dt上订购数据。

我的问题是,如果我没有更新我的截止日期,它每次都会转到同一条记录。如果我没有更新它,我只想进入下一条记录。我可以拥有自己想要的行为吗?我能做出什么改变?

由于

2 个答案:

答案 0 :(得分:1)

以下语句返回表中的第一行:

ds.Tables(0).Rows(0).Item("Request_ID")

要获得第二行,您可以使用以下语句:

ds.Tables(0).Rows(1).Item("Request_ID")

要循环遍历所有行,您可以执行以下操作:

For Each row As DataRow in ds.Tables(0).Rows
    Dim requestId As Object = row.Item("Request_ID")
Next

答案 1 :(得分:0)

使用此代码....这应该有用....首先你必须声明一个名为data_row的静态变量,还要声明一个数据集。

  

public void Button1_Click(object sender,EventArgs e)           {               if(RowNo< sqlDst.Tables [“news”]。Rows.Count - 1)               {                   RowNo + = 1;                   DataRow drow = sqlDst.Tables [“news”]。行[RowNo];

            Label2.Text = drow.ItemArray.GetValue(0).ToString();
            TextBox2.Text = drow.ItemArray.GetValue(1).ToString();
            Label1.Text = "";

        }

        else
        {
            Label1.Text = "No more records";
        }

    }

要使其工作,需要在页面顶部声明变量。

  

private DataSet sqlDst = new DataSet();           private static int RowNo = 0;           businesscheck obj1 = new businesscheck();