从SqlDataReader获取选定的id索引位置

时间:2015-11-26 05:16:39

标签: c# sql-server sqldatareader

在我的Winforms应用程序中,我有一个查找选项。当用户输入我的表的id(注意:我的id是主键)时,我将显示输入的特定ID的详细信息。我将该特定记录存储在datareader中,然后我将该特定数据显示在文本框字段中。

像这样:

if (reader.Read())
{
  btnNext.Enabled = true;
  btnPrevious.Enabled = true;
  txtname.Text = reader["name"].ToString();
  .....
}

除此之外,我还有下一个和上一个按钮。所以他根据那个id找到了数据,然后他想从find id看到下一条记录。

我将捕获索引位置的id,以便我可以轻松地显示下一条记录以及之前的记录。如何获得身份证位置?有人可以帮忙吗?

我在下一个按钮上显示下一条记录,如下所示:

  if (dt.Rows.Count > 0)
   {
   if (count < dt.Rows.Count - 1)
   {
   count += 1;
   ShowData();
   }
   else
   {
   MessageBox.Show("Last record of the table.");
   }
   }

1 个答案:

答案 0 :(得分:0)

我认为您可以在Sql Statment中使用ROW_NUMBER来获取当前ID位置

select  ROWNUM from (
          SELECT ID,ROW_NUMBER() over({Your Default Order}) as ROWNUM 
                     FROM {Your Table Name} WHERE {CONDITION} ) x 
                      WHERE x.ID= {Your ID}

Eaxmple select ROWNUM from (SELECT ID,ROW_NUMBER() over(ORDER BY ID) as ROWNUM FROM COLORS WHERE NAME like '%%' ) x WHERE x.ID= 5