дозвуковой сборник

Я написал этот код для создания коллекции. Я пытался отфильтровать коллекцию с помощью subsonic.where, но не работал. На самом деле предложение where изменится при вводе пользователя, поэтому я не могу добавить предложение where в sqlquery, а также datatable будет заполнен разными данными из коллекции на основе ввода пользователя. Как я могу этого добиться. Также я хочу, чтобы коллекция оставалась неизменной, чтобы я использовал ее для фильтрации с другим предложением where. Кроме того, я выбрал только два столбца, но отображаются все столбцы. Пожалуйста помоги.

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

person Soham Dasgupta    schedule 19.01.2010    source источник


Ответы (1)


То, что вы делаете, не имеет особого смысла - где нужно перейти к запросу, затем попасть в БД - так это должно работать. Если вы хотите отфильтровать постфактум, вы можете использовать Linq Where (), который отфильтрует список за вас.

person Community    schedule 19.01.2010
comment
Но я не использую linq. Я использую .net 2.0. Как я могу отфильтровать коллекцию или набор данных с помощью дозвуковой - person Soham Dasgupta; 20.01.2010
comment
Используйте Where () и позвольте БД фильтровать его. Если это не поможет, отфильтруйте коллекцию вручную. Если это не сработает для вас, вам понадобится другая платформа. - person ; 22.01.2010
comment
Посмотрите здесь примеры использования SubSonic Where (): subsonicproject.com/docs/Simple_Query_Tool - person sparks; 23.01.2010