我有以下代码,我试图让用户选择要同步的多个项目:
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”。我在Sync Framework过滤中看到的示例仅过滤一个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.
答案 0 :(得分:0)
此问题的可能解决方案:
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/ )OR