2010-01-19 102 views
0

我已经编写了这段代码来生成一个集合。我试图使用subsonic来过滤集合,但其不起作用。实际上,where子句将在用户输入中发生变化,所以我不能将where子句添加到sqlquery中,而且数据表将使用基于用户输入的集合中的不同数据填充。我该如何实现这一点。另外我希望集合保持不变,以便我用它进一步过滤另一个where子句。 Alo我只选择了两列,但所有列都显示出来了。请帮忙。亚音速收集

Dim sq As SB.SqlQuery = New SB.Select("product.prodcode as 'Product Code'").From(DB.Product.Schema) 
Dim wh As SB.Where = New SB.Where() 
Dim prod As DB.ProductCollection = sq.ExecuteAsCollection(Of DB.ProductCollection)() 

wh.ColumnName = DB.Product.ServiceColumn.PropertyName 
wh.Comparison = SubSonic.Comparison.NotEquals 
wh.ParameterValue = System.Decimal.One 

Dim tab As DataTable = prod.Where(wh).Filter().ToDataTable() 
Me.GridControl1.DataSource = tab 

回答

1

你在做什么没有多大意义 - 哪里需要去查询,然后打到数据库 - 这就是它应该工作的方式。如果你想过滤事实之后,你可以使用Linq的Where(),它会为你过滤列表。

+0

但我没有使用linq。我正在使用.net 2.0。如何过滤亚音速的集合或数据集 – 2010-01-20 17:26:40

+0

使用Where()并让数据库过滤它。如果这不适合你,请手动过滤收藏夹。如果这不适合你,那么你将需要一个不同的平台。 – 2010-01-22 08:18:39

+0

查看这里使用SubSonic的Where()的例子:http://subsonicproject.com/docs/Simple_Query_Tool – sparks 2010-01-23 03:41:15