做分销商城网站的,升级不了wordpress,网站模块是啥,昭通商城网站建设使用DataTable类的搜索和筛选功能DataTable类公开了两个方法#xff1a;Find和SelectFind方法#xff1a;可以根据主键来查找数据行。Select方法#xff1a;更类似于筛选器#xff0c;根据更灵活的搜索条件返回多个数据行在查询数据库获取信息时#xff0c;假如使用如下SQ…使用DataTable类的搜索和筛选功能DataTable类公开了两个方法Find和SelectFind方法可以根据主键来查找数据行。Select方法更类似于筛选器根据更灵活的搜索条件返回多个数据行在查询数据库获取信息时假如使用如下SQL查询 select CustomerID,CompanyName,ContactName,Phone from Customers where CustomerID Alen这个查询是根据主键来查询的可以在ADO.NET中使用Find方法根据主键值在DataTable中查找DataRow。Find方法返回一个DataRow就算有多个DataRow符合查询的要求也只会返回第一个符合要求的DataRow。使用示类string strConn, strSQL;//数据库连接字符串和查询语句strConn ....;strSQL ....;SqlDataAdapter da new SqlDataAdapter(strSQL,strConn);DataTable tb1 new DataTable(Customers);da.Fill(tb1);tb1.PrimaryKey new DataColumn[] { tb1.Columns[CustomerID] };DataRow row tb1.Rows.Find(Alen);Console.WriteLine(row[CompanyName]);DataTable类的Select方法根据类似的条件查找行。假如希望查找下面SQL语句 select CustomerID,CompanyName,ContactName,Phone from Customers where Country USA and City Seattle这个复杂的条件查询我们要是假设DataTable中数据也是要完成这样的查询可以使用Select方法来完成使用实例SqlDataAdapter da1 new SqlDataAdapter(strSQL, strConn);DataTable tb2 new DataTable(Customers);da.Fill(tb1);string strFilter Country USA and City Seattle;foreach (DataRow r in tb2.Select(strFilter)){ Console.WriteLine(r[CompanyName]);}可以看出来select方法还是很重要的我们来做个select的用法步骤归纳1、先确定要筛选的目标结果2、写出对应的SQL语句能在数据库中运行并得到想要的结果3、把这个表的数据用SqlDataAdapter的Fill方法缓存到内存的DataTable中4、把SQL语句的Where部分提取出来赋值给strFilter字符串5、调用Select方法DataRow[] tb2.Select(strFilter);会返回相应的结果集 *有时候我们需要对结果排序用SQL语句就很简单 *升序 *select CustomerID,CompanyName,ContactName,Phone from Customers order by City *降序 *select CustomerID,CompanyName,ContactName,Phone from Customers order by City desc *重载的Select方法可以接受一个排序顺序使用实例 string strFilter1 Country USA and City Seattle;string strSort City Desc;foreach (DataRow r in tb2.Select(strFilter1, strSort)){ Console.WriteLine(r[CompanyName]);} 我们来做个select的用法步骤重新总结1、先确定要筛选的目标结果2、写出对应的SQL语句能在数据库中运行并得到想要的结果3、把这个表的数据用SqlDataAdapter的Fill方法缓存到内存的DataTable中4、把SQL语句的Where部分提取出来赋值给strFilter字符串Order by部分提取出来给strSort字符串5、调用Select方法DataRow[] tb2.Select(strFilter, strSort);会返回相应的结果集DataView对象的出现DataTable的Select方法功能强大而且很灵活但是它还是有一些限制。首先这个动态的查询效率不高。然后Windows和Web不支持绑定到DataRow数组。于是DataView对象出现了可以很好的解决这些限制DataView对象从DataTable中返回数据数据库中的视图也是这个特性DataView对象可以用来筛选、排序和搜索DataTable的数据但是他们并非SQL查询。不能用DataView来连接两个DataTable对象之间的数据。DataView对象的确支持根据动态的条件筛选行但是他们仅能访问一个DataTable并且DataTable中的所有列都可以通过DataView得到创建DataView对象使用DataView来查看DataTable中的数据就必须将他和DataTable对象关联起来有以下两个方法DataTable tb3 new DataTable(Customers);DataView vue;//方法1使用这个方法要注意一个问题所关联的tb3的TableName必须是自己重新指定的默认是不行的vue new DataView();vue.Table tb3;//方法2vue new DataView(tb3);DataView对象还有一个构造函数其签名与DataTable对象的Select方法非常匹配一个复杂的构造函数在一行代码中设置了DataView的Table、RowFilter、Sort和RowStateFilter等属性使用实例//分别设置Table、RowFilter、Sort和RowStateFilter等属性vue.Table tb3;vue.RowFilter strFilter1;vue.Sort strSort;vue.RowStateFilter DataViewRowState.ModifiedCurrent;//一个复杂的构造函数vue new DataView(tb3, strFilter1, strSort,DataViewRowState.ModifiedCurrent);使用DataRowView来查看DataView中的数据DataView对象还公开了Count属性可以看到DataView的行数使用实例foreach (DataRowView rView in vue){ Console.WriteLine(rView[CompanyName]);}在DataView中搜索数据我们前面已经使用了RowFilter和RowStateFilter属性来支持搜索的DataView还支持Find和FindRows方法搜索Find方法使用说明一旦设置了DataView中的Sort属性就可以调用它的Find方法根据Sort属性中所指示的列来查找。DataView的Find方法不返回DataRow或者是DataRowView对象他会返回的是一个整型值该值是对应于所在行的DataView的索引。如果没有就返回-1Find方法使用实例vue new DataView(tb3);vue.Sort City;int intIndex vue.Find(Fran Wilson);Console.WriteLine(vue[intIndex][CompanyName]);//使用FindRows方法vue new DataView(tb3);vue.Sort City;DataRowView[] arows vue.FindRows(Fran);foreach (DataRowView rr in arows){ Console.WriteLine(rr[CompanyName]);}修改DataRowView对象用DataRowView对象修改一行数据类似于修改DataRow对象的内容。与DataRow类一样DataRowView对象也公开了BeginEditEndEditCancelEdit和Delete方法用DataRowView对象创建新数据行与创建新DataRow有一点不同。DataView有一个AddNew方法该方法返回一个新的DataRowView直到DataRowView对象调用EndEdit方法新行才被真正地创建到DataTable中使用实例//添加一新行DataRowView rowView vue.AddNew();rowView[CustomerID] asdf;rowView.EndEdit();//修改一行rowView.BeginEdit();rowView[CustomerID] 刘明丰;rowView.EndEdit();//删除一行rowView.Delete();使用DataView创建新的DataTable使用实例DataTable newTable vue.ToTable(CreateNewTable);转载于:https://www.cnblogs.com/lmfeng/archive/2012/02/02/2335876.html