dataview.findRows()是什么意思,怎么使用的

dataview.findRows()是什么意思,怎么使用的,还有dataview.find()这个我也不是很会... dataview.findRows()是什么意思,怎么使用的,还有dataview.find()
这个我也不是很会
展开
 我来答
她是我的小太阳
高粉答主

2015-10-27 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:9050万
展开全部
搜索 DataView:描述如何在 DataView 中查找特定行。

使用 DataView 的 Find 和 FindRows 方法,您可以按照行的排序关键字值来对行进行搜索。Find 和 FindRows 方法中的搜索值是否区分大小写取决于基础 DataTable 的 CaseSensitive 属性。搜索值必须完全匹配现有排序关键字值才能返回结果。
Find 方法返回一个整数,该整数表示匹配搜索条件的 DataRowView 的索引。如果多个行匹配搜索条件,则只返回第一个匹配 DataRowView 的索引。如果未找到匹配项,Find 将返回 -1。

若要返回匹配多个行的搜索结果,可以使用 FindRows 方法。FindRows 的工作方式与 Find 方法类似,不同的只是 FindRows 返回引用 DataView 中所有匹配行的 DataRowView 数组。如果未找到匹配项,DataRowView 数组将为空。

若要使用 Find 或 FindRows 方法,必须通过将 ApplyDefaultSort 设置为 true 或通过使用 Sort 属性来指定排序顺序。如果未指定排序顺序,则将引发异常。

以下代码显示对具有单个列排序顺序的 DataView 调用的 Find 方法。

[Visual Basic]
Dim custView As DataView = New DataView(custDS.Tables("Customers"), "","CompanyName", DataViewRowState.CurrentRows)

Dim rowIndex As Integer = custView.Find("The Cracker Box")

If rowIndex = -1 Then
Console.WriteLine("No match found.")
Else
Console.WriteLine("{0}, {1}",custView(rowIndex)("CustomerID").ToString(), custView(rowIndex)("CompanyName").ToString())
End If

[C#]
DataView custView = new DataView(custDS.Tables["Customers"], "", "CompanyName", DataViewRowState.CurrentRows);

int rowIndex = custView.Find("The Cracker Box");

if (rowIndex == -1)
Console.WriteLine("No match found.");
else
Console.WriteLine("{0}, {1}",custView[rowIndex]["CustomerID"].ToString(),custView[rowIndex]["CompanyName"].ToString());

如果 Sort 属性指定多个列,则必须按 Sort 属性指定的顺序为每个列传递包含搜索值的对象数组,如以下代码示例所示。

[Visual Basic]
Dim custView As DataView = New DataView(custDS.Tables("Customers"), "", "CompanyName, ContactName", DataViewRowState.CurrentRows)

Dim foundRows() As DataRowView = custView.FindRows(New object() {"The Cracker Box", "Liu Wong"})

If foundRows.Length = 0 Then
Console.WriteLine("No match found.")
Else
Dim myDRV As DataRowView
For Each myDRV In foundRows
Console.WriteLine("{0}, {1}", myDRV("CompanyName").ToString(), myDRV("ContactName").ToString())
Next
End If

[C#]
DataView custView = new DataView(custDS.Tables["Customers"], "","CompanyName, ContactName",DataViewRowState.CurrentRows);

DataRowView[] foundRows = custView.FindRows(new object[] {"The Cracker Box", "Liu Wong"});

if (foundRows.Length == 0)
Console.WriteLine("No match found.");
else
foreach (DataRowView myDRV in foundRows)
Console.WriteLine("{0}, {1}", myDRV["CompanyName"].ToString(), myDRV["ContactName"].ToString());
149032105
2007-12-26 · TA获得超过756个赞
知道小有建树答主
回答量:1029
采纳率:0%
帮助的人:669万
展开全部
搜索 DataView:描述如何在 DataView 中查找特定行。

使用 DataView 的 Find 和 FindRows 方法,您可以按照行的排序关键字值来对行进行搜索。Find 和 FindRows 方法中的搜索值是否区分大小写取决于基础 DataTable 的 CaseSensitive 属性。搜索值必须完全匹配现有排序关键字值才能返回结果。
Find 方法返回一个整数,该整数表示匹配搜索条件的 DataRowView 的索引。如果多个行匹配搜索条件,则只返回第一个匹配 DataRowView 的索引。如果未找到匹配项,Find 将返回 -1。

若要返回匹配多个行的搜索结果,可以使用 FindRows 方法。FindRows 的工作方式与 Find 方法类似,不同的只是 FindRows 返回引用 DataView 中所有匹配行的 DataRowView 数组。如果未找到匹配项,DataRowView 数组将为空。

若要使用 Find 或 FindRows 方法,必须通过将 ApplyDefaultSort 设置为 true 或通过使用 Sort 属性来指定排序顺序。如果未指定排序顺序,则将引发异常。

Find 和 FindRows 方法将一个值数组用作输入,该数组的长度与排序顺序所包含的列数相匹配。在对单个列进行排序的情况下,可以传递单个值。对于包含多个列的排序顺序,可传递一个对象数组。请注意,当对多个列进行排序时,对象数组中的值必须匹配在 DataView 的 Sort 属性中指定的列的顺序。

以下代码显示对具有单个列排序顺序的 DataView 调用的 Find 方法。

[Visual Basic]
Dim custView As DataView = New DataView(custDS.Tables("Customers"), "","CompanyName", DataViewRowState.CurrentRows)

Dim rowIndex As Integer = custView.Find("The Cracker Box")

If rowIndex = -1 Then
Console.WriteLine("No match found.")
Else
Console.WriteLine("{0}, {1}",custView(rowIndex)("CustomerID").ToString(), custView(rowIndex)("CompanyName").ToString())
End If

[C#]
DataView custView = new DataView(custDS.Tables["Customers"], "", "CompanyName", DataViewRowState.CurrentRows);

int rowIndex = custView.Find("The Cracker Box");

if (rowIndex == -1)
Console.WriteLine("No match found.");
else
Console.WriteLine("{0}, {1}",custView[rowIndex]["CustomerID"].ToString(),custView[rowIndex]["CompanyName"].ToString());

如果 Sort 属性指定多个列,则必须按 Sort 属性指定的顺序为每个列传递包含搜索值的对象数组,如以下代码示例所示。

[Visual Basic]
Dim custView As DataView = New DataView(custDS.Tables("Customers"), "", "CompanyName, ContactName", DataViewRowState.CurrentRows)

Dim foundRows() As DataRowView = custView.FindRows(New object() {"The Cracker Box", "Liu Wong"})

If foundRows.Length = 0 Then
Console.WriteLine("No match found.")
Else
Dim myDRV As DataRowView
For Each myDRV In foundRows
Console.WriteLine("{0}, {1}", myDRV("CompanyName").ToString(), myDRV("ContactName").ToString())
Next
End If

[C#]
DataView custView = new DataView(custDS.Tables["Customers"], "","CompanyName, ContactName",DataViewRowState.CurrentRows);

DataRowView[] foundRows = custView.FindRows(new object[] {"The Cracker Box", "Liu Wong"});

if (foundRows.Length == 0)
Console.WriteLine("No match found.");
else
foreach (DataRowView myDRV in foundRows)
Console.WriteLine("{0}, {1}", myDRV["CompanyName"].ToString(), myDRV["ContactName"].ToString());

复制得来~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式