如何填充数据表以便您可以遍历

how to fill a datatable so that you can iterate through

如何创建“下一个”和“上一个”按钮并循环遍历已返回到数据表的查询?

我试过以下方法:

protected void btnPrevious_Click(object sender, EventArgs e)
{
    DAL.CustomersDataSetTableAdapters.CustomerDetailsTableAdapter eobj = new DAL.CustomersDataSetTableAdapters.CustomerDetailsTableAdapter();
    DataTable dt = new DataTable();
}

我需要遍历将返回到表单文本框中的值。

阅读评论后,您似乎希望有一个 Next 和 Previous 按钮来浏览数据 table 中的记录,该数据已由 运行 a 返回生成数据的查询table.

我会做的是:

  1. 创建一个单独的函数来运行查询并初始化 table。

您可能不想总是创建新数据table 并在用户单击上一个按钮时数据绑定到它(看起来这就是您一直在尝试做的事情)

大致是这样的:

DataTable dt; //declare first so other fucntions can use this

protected void initializeDataTable()
{
    DAL.CustomersDataSetTableAdapters.CustomerDetailsTableAdapter eobj = new DAL.CustomersDataSetTableAdapters.CustomerDetailsTableAdapter();
    dt = new DataTable();
    //you might have to bind to your datasource, or 
    //run the query that generates the dataTable here.

    //after all that you might want to display the first value, index 0. 
}

我不熟悉 ASP.net DataTable 绑定,this tutorial might help。基本上你需要加载数据,我认为你可以处理那部分。

  1. 下一个和上一个按钮将 increment/decrement 一个变量。

在class中新建一个值i,并初始化为0。当用户点击下一步按钮时,i++,当用户点击上一个按钮 i--,您必须确保它不会低于 0 或超过数据表的长度。

有点像;

protected void btnPrevious_Click(object sender, EventArgs e)
{
    if (i < totalNumberOfRecords) 
    {
        i = i + 1;
        DisplayResults(i);

        LinkButton btnPrevious = (LinkButton)Master.FindControl("ContentController").FindControl("btnPreviousRecord");        btnPrevious.Enabled = true; 
 }
}

我们设置 btnPrevious.Enabled = true 或 false,因为我们不希望用户继续点击上一个按钮,即使它已经在顶部。

您也可以添加第一个和最后一个按钮。对于第一个设置索引为 0,对于最后一个设置索引为最大行数。

DisplayResults 函数如下所示:

public void DisplayResults(int rowNumber)
{
   textBox1.Text = ds.Tables[0].Rows[i]["ID"].ToString();
   textBox2.Text = ds.Tables[0].Rows[i]["empname"].ToString();
   textBox3.Text = ds.Tables[0].Rows[i]["salary"].ToString();
   //and so on so forth.
}

示例改编自this C# tutorial,或许对您有所帮助。