使用SqlDataReader

时间:2015-11-07 10:06:24

标签: c# sql-server sqldatareader

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

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详细信息显示在文本框中

2 个答案:

答案 0 :(得分:1)

在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];

答案 1 :(得分: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.

                }
            }
        }