2013-11-21 44 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