同步框架:过滤多行
本文关键字:过滤 框架 同步 | 更新日期: 2023-09-27 18:16:24
我有以下代码,我试图让用户选择多个项目同步:
serverTemplate.Tables["dbo.order_details"].AddFilterColumn("order_id");
serverTemplate.Tables["dbo.order_details"].FilterClause =
String.Format("[side].[order_id] IN ({0})", "@order_ids");
var param2 = new SqlParameter("@order_ids", SqlDbType.Structured);
serverTemplate.Tables["dbo.order_details"].FilterParameters.Add(param2);
serverTemplate.Apply();
我需要一种方法来过滤多个"order_ids"。我看到的同步框架过滤的例子只过滤一个ID。我认为我可以使用SqlDbType.Structured
数据类型来显示"order_ids将是一个列表"。然而,我得到以下错误:serverTemplate.Apply();
System.Data.SqlClient.SqlException was unhandled
Message=Column, parameter, or variable #5: Cannot find data type READONLY.
Parameter or variable '@order_ids' has an invalid data type.
此问题的可能解决方案:
- 您可以将
order_ids
设置为DataTable
,这是SqlDbType.Structured
类型的参数所接受的(参见示例http://s.codeproject.com/KB/database/TableValuedParameters.aspx和http://lennilobel.wordpress.com/2009/07/29/sql-server-2008-table-valued-parameters-and-c-custom-iterators-a-match-made-in-heaven/)
或
- 您可以将其表述为某些表上的子选择,您可以使用该子选择来存储每一行一个id。