使用SqlDataReader按行号显示记录

本文关键字:显示 记录 SqlDataReader 使用 | 更新日期: 2023-09-27 18:21:09

以下代码将显示文本框中的最后一条记录。我希望能够选择显示的行数据

while (reader.Read())
{
    ListViewItem item = new ListViewItem(reader["item_ID"].ToString());
    Item.SubItems.Add(reader["item_Desc"].ToString());
    listView1.Items.Add(item);
    if(action == "add")
    {
        txtitemid.Text = "";
        txtitem.Text = "";
    }
    else
    {   
        //this is the part i am taking about
        txtitemid.Text = reader.GetValue(0).ToString();
        txtitemdesc.Text = reader.GetValue(1).ToString();
    }
}

假设表中的最后一条记录的item_ID为15,item_Desc为dress,则文本框将根据上的代码显示以下内容

 txtitemid.Text = 15;
 txtitemdesc.Text = "dress";

我希望能够确定哪些Item_ID详细信息将显示在文本框

使用SqlDataReader按行号显示记录

在while循环后分配文本框值:

if (listView1.Items.Count > 0)
{
    var displayedItem = listView1.Items[listView1.Items.Count - 1];
    txtitemid.Text = displayedItem.SubItems[0].Text;
    txtitemdesc.Text = displayedItem.SubItems[1].Text;
}
else
{
    txtitemid.Text = "";
    txtitemdesc.Text = "";
}

编辑:

类似地,您可以通过将上面代码中的行更改为:来显示第一项

var displayedItem = listView1.Items[0];
if (reader.Read())
        {
            var readMore = true;
            while (readMore)
            {
                var val = reader.GetValue(0).ToString();
                readMore = reader.Read();
                if (!readMore)
                {
                    //Last record. Use val .
                    txtitemid.Text = val;
                }
                else
                {
                    //Not last record. Process val differently.
                }
            }
        }