2015-11-26 52 views
0

在我的Winforms應用程序中,我有一個查找選項。當用戶輸入我的表的ID時(注意:我的id是主鍵),我將顯示輸入的特定ID的詳細信息。我將該特定記錄存儲在數據讀取器中,並將該特定數據顯示到文本框字段中。從SqlDataReader獲取所選的id索引位置

像這樣:

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

隨着我有一個和上一個按鈕。因此,他根據該ID查找數據,然後他想從查找ID中查看下一條記錄。

我將捕獲索引位置的id,以便我可以很容易地顯示下一個記錄以及以前的記錄。如何獲得id位置?誰能幫忙?

我顯示下一條記錄在我的下一個按鈕,如下圖所示:

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

是ID一個uuid或只是一個自動增量int? –

+0

@WouterHuysentruit ID是uuid。這是唯一的ID。不自動增加 – Nag

+0

上一個/下一個,你的意思是插入順序是正確的? –

回答

0

我認爲你可以使用ROW_NUMBER在SQL Statment獲得當前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

+0

每次這個條件只給出ROWNUM爲1,如果我改變了id號也是 – Nag

+0

請鍵入相同的代碼,並注意我從sataement末尾刪除')' –

+0

是的,我輸入了相同的代碼,也刪除了末尾大括號 – Nag