关于DataView的RowFilter的查询! DataView 的FindRows 、Find可以做吗??如果可以,请给段代码!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用 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()); 另外DataView的RowFilter来做查询肯定可以实现查询int型的你在试一下custDV.RowFilter ="Price=2";就象这样.我机器上是可以实现的噢 这样其实还是String数据!我得Price字段是int类型,后面的类型是String 什么我得Price字段是int类型,后面的类型是String??? 总是无法在 System.Int16 和 System.String 上执行“Like”操作。objDataView.RowFilter = Columns.SelectedItem.Value + " LIKE'*" + txtFind.Text + "*'";Columns.SelectedItem.Value是一个DropdownlisttxtFind是一个TextBox当Columns.SelectedItem.Value字段是一个String时显示正常而是byte或int时就出错了 在objDataView.RowFilter 前面用switch判断一下,如果是price,objDataView.RowFilter = Columns.SelectedItem.Value + " LIKE *" + txtFind.Text + "*";如果是别的字段objDataView.RowFilter = Columns.SelectedItem.Value + " LIKE'*" + txtFind.Text + "*'"; 或者price时把上面的like换成=,去掉*,应该是可以的 FindRows 、Find怎么用,能给个例子吗? 参见:写得很详细ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconsearchingdataview.htm SQL2005全文索引检索不到数据 困扰好多天的WCF问题 请哪位高手帮我看下这个小问题,谢谢 请大家给我出出意见(有没有好像我这样的?) 读取txt文件的显示问题,路过有分拿啊 请问在ascx中将数据分页? 急!!项目急用!! 当鼠标经过图片的时候,怎么才能使相应出现的工具兰屏蔽掉? 如何得到当前WebApplication的所在路径 退出程序 关于设置word文档中某一段落的部分文本内容的格式的问题 请问如果把一个文件存在很多变量,这些变量将作用于其它很多aspx文件,应该怎么做?
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());
custDV.RowFilter ="Price=2";就象这样.我机器上是可以实现的噢
我得Price字段是int类型,后面的类型是String
txtFind是一个TextBox当Columns.SelectedItem.Value字段是一个String时显示正常
而是byte或int时就出错了
objDataView.RowFilter = Columns.SelectedItem.Value + " LIKE *" + txtFind.Text + "*";
如果是别的字段
objDataView.RowFilter = Columns.SelectedItem.Value + " LIKE'*" + txtFind.Text + "*'";
ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconsearchingdataview.htm