关于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 小虎:如梦:天行健:您们对iframe的理解都不一样啊 请问怎么才能让判断循环起来啊 郁闷 从http位置建立网站项目,无论运行vs还是输入http地址都打不开Default.aspx VS2005+ACCESS连接数据库遇到问题 求助 用户 'sa' 登录失败 关于网站数据库搜索问题,望高人指点 vs2005中一个很奇怪的问题,请高手帮忙,谢谢 上传图片的地址问题 根据公交线路查询站点和经纬度 关于设置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