2016-08-15 2 views
1

Я пытаюсь использовать поле GUID из базы данных CRM4 с помощью WSDL-запроса, но я не уверен, как передать несколько значений guid в базу данных, если я попытаюсь это сделать, в ошибке:Передача указателя в качестве фильтра фильтра crm

0x80040216 Произошла непредвиденная ошибка. Платформа

Код, который я передаю в следующим образом:

Dim cond2 As CrmService.ConditionExpression = New CrmService.ConditionExpression 
cond2.Operator = CrmService.ConditionOperator.In 
cond2.AttributeName = "createdby" 
cond2.Values = {"3398448B-D65B-E611-95A2-000D3AB23B6B", "1196E35B-E05B-E611-95A2-000D3AB23B6B"} 

Любая идея относительно того, что может быть причиной этой ошибки и как я могу правильно передать несколько Guid значения в значения состояния.

Я также попытался:

cond2.Values = {New Guid("3398448B-D65B-E611-95A2-000D3AB23B6B"), New Guid("1196E35B-E05B-E611-95A2-000D3AB23B6B")} 

А также:

Dim testGuid As New UniqueIdentifier 
testGuid.Value = New Guid("1196E35B-E05B-E611-95A2-000D3AB23B6B") 
testGuid.IsNull = False 
+0

Возможно, вы захотите ознакомиться с табличными параметрами. https://msdn.microsoft.com/en-us/library/bb510489.aspx Любой другой метод передачи нескольких значений получает вид уродливого. Вам понадобится динамический sql или разделитель строк. –

ответ

0

Попробуйте собрать массив первых, определенный как тип Guid.

Dim values As Guid() = New Guid() {a_guid, another_guid} 
Dim c As New ConditionExpression("createdby", ConditionOperator.[In], values) 
+0

В первой строке отображается ошибка, которую строка не может быть преобразована в GUID – Jay

+0

, что означает «имя»? Я изменил это следующим образом: im guidValues ​​As Guid() = New Guid (2) {} guidValues ​​(1) = New Guid ("3398448B-D65B-E611-95A2-000D3AB23B6B") guidValues ​​(2) = New Guid («1196E35B-E05B-E611-95A2-000D3AB23B6B») – Jay

+0

@Jay, Обновленный мой ответ, 'name' должен быть вашим атрибутом, например 'Createdby'. Массив должен иметь значения 'Guid', а не' string', как вы упомянули. –