2013-11-21 86 views
1

可以說我有一個數據集,我不知道其中有20條記錄。在SQL數據集中選擇第N條記錄

如何獲得數據集中的第16條記錄或第N條記錄?因此,從1到20的任何數字

我花了大部分時間試圖想到一種方法,到目前爲止我沒有得到任何地方。

我想要在這個數據集中的第16條記錄下來,似乎並沒有一個特定的命令。

我正在使用OLE命令在VB.NET中工作。

我不知道任何代碼將是任何使用,以幫助解決這一點,但我填充數據集是這樣的:

SQL_Str = "SELECT FROM A TABLE WHERE CRITERIA IS MET" 
dbDataAdapter = New OleDbDataAdapter(SQL_Str, dbConnector) 
dbDataAdapter.Fill(DataSet, "SelectedRecords") 

現在我該怎麼辦才能到第16行中這個數據集知道數據集中有20條記錄?

+2

該解決方案可以是SQL依賴......這RDBMS您使用的? SQL Server/Mysql/etc? – Ryan

+0

我使用ADOX創建Access數據庫,然後使用OLEDB控制該數據庫 – user2177940

+0

您如何確定'N'th?如果您沒有明確聲明,SQL不保證任何特定的順序! – FrankPl

回答

2

既然你說你正在使用VB.NET,那麼只需從dataSet讀取一行即可。

Private Function GetRow(ByVal ds As Data.DataSet, ByVal rowNum As Integer) As Data.DataRow 
    Dim result As Data.DataRow = Nothing 
    Dim table As Data.DataTable = ds.Tables(0) 
    result = table.Rows(rowNum) 
    Return result 
End Function 

有重載到DataSet.Tables:考慮:

screenshot

+0

在你說db.Tables(0)的地方,是否可以將0切換爲數據集中表的名稱? – user2177940

+0

@ user2177940 [是查看DataTableCollection.Item屬性](http://msdn.microsoft.com/en-us/library/58st33fb(v = vs.110).aspx),但您應該使用DataView及其排序屬性設置或添加一個ORDER By到原始的sql,如果你想確定性的結果 –

+0

我已經更新了屏幕截圖,顯示了4個過載選項中的3個。 – jp2code