dataRowFilter有什么作用?它只是行的条件吗?因为在行过滤器中添加选择不起作用
代码是:
Dim strExpr = "ClientID>(select count(*) from Client)-10" (to select the last 10 records);
Dim dv = ds.Tables(0).DefaultView;
dv.RowFilter = strExpr;
Dim newDS = New DataSet();
Dim newDT = dv.ToTable();
newDS.Tables.Add(newDT);
但代码不起作用,如果我放入strExpr="ClientID>3"
代码确实有效,那么RowFilter
只是条件吗?因为我不能把选择放进去。
答案 0 :(得分:0)
DataRowFilter属性用于过滤DataView中查看的行。该字符串在内部被解析为DataExpressions。在查看Expression类的DataColumn属性时,您将在MSDN上找到有关表达式语法的更多信息。相同的语法适用于Select的DataTable函数。
在这些LINQ次中,查询数据集/表非常简单。例如,如果您的客户端表的索引范围从 1 到 100 ,则以下代码将返回索引为的客户端31 到 40 。
Dim table As DataTable = (
From row As DataRow
In ds.Tables("Client")
Let clientId As Int32 = row.Field(Of Int32)("ClientID")
Where clientId > 30
Order By clientId Ascending
Select row
).Take(10).CopyToDataTable()
PS:同一个查询实际上可以写成一行:
Dim table As DataTable = (From row As DataRow In ds.Tables("Client") Let clientId As Int32 = row.Field(Of Int32)("ClientID") Where clientId > 30 Order By clientId Ascending Select row).Take(10).CopyToDataTable()