2013-10-08 2 views
0

이름으로 배열에서 값을 가져 오려고합니다. 이 매개 변수는 SSRS 및 트랜잭션 쿼리 모두에 이러한 매개 변수를 보내는 데 사용됩니다.이름으로 배열 값을 가져옵니다.

가 나는 XML 형식가 parameterValue이 : 나는 다음과 같은 값을 얻을 이름의 인덱스를 얻을 수 있다고 생각

'report paramerters 
Dim parametersTransactional(3) As ParameterValue 

parametersTransactional(0) = New ParameterValue() 
parametersTransactional(0).Name = "StartDate" 
parametersTransactional(0).Value = "2012-01-01T00:00:00" 

parametersTransactional(1) = New ParameterValue() 
parametersTransactional(1).Name = "EndDate" 
parametersTransactional(1).Value = "2012-06-01T00:00:00" 

parametersTransactional(2) = New ParameterValue() 
parametersTransactional(2).Name = CustomersCustomerLocation" 
parametersTransactional(2).Value = "1, 2, 3, 4, 5" 

을;

Dim startDate As String = "StartDate" 
Dim idxStartDate As Integer = Array.IndexOf(parameters, startDate) 

또는 같은

:

Dim start2 As Integer = parameters.FindIndex(startDate) 

가 parameterValue 유형이다 :

'''<remarks/> 
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929"), _ 
System.SerializableAttribute(), _ 
System.Diagnostics.DebuggerStepThroughAttribute(), _ 
System.ComponentModel.DesignerCategoryAttribute("code"), _ 
System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices")> _ 
Partial Public Class ParameterValue 
Inherits ParameterValueOrFieldReference 

Private nameField As String 

Private valueField As String 

Private labelField As String 

'''<remarks/> 
Public Property Name() As String 
    Get 
     Return Me.nameField 
    End Get 
    Set 
     Me.nameField = value 
    End Set 
End Property 

'''<remarks/> 
Public Property Value() As String 
    Get 
     Return Me.valueField 
    End Get 
    Set 
     Me.valueField = value 
    End Set 
End Property 

'''<remarks/> 
Public Property Label() As String 
    Get 
     Return Me.labelField 
    End Get 
    Set 
     Me.labelField = value 
    End Set 
End Property 

최종 클래스

그래서 몇 가지 중요한 단계를 누락

.

+1

배열 대신 사전을 원해서 좋아할 것 같습니까? – crashmstr

+0

@ crashmstr 가능합니다. ParameterValue는 SSRS에 보낼 수있는 값입니다. 또한 트랜잭션 쿼리에 사용할 개별 매개 변수로 값을 추출하려고합니다. 내가 ParameterValue를 통해 반복하고 사전에 값을 배치해야합니까? – BClaydon

답변

2

First 또는 FirstOrDefault 방법을 사용하면 쉽게 달성 할 수 있습니다. 둘 다 LINQ 확장 방법입니다. 예 :

Dim p As ParameterValue = parameters.FirstOrDefault(function(x) x.Name = "StartDate") 
+0

그래, 그거야! 다음과 같이 보입니다 : Dim p As ParameterValue = parameters.FirstOrDefault (Function (x) x.Name = "StartDate") Dim startDate As String = p.Value.ToString() – BClaydon

1

두 번째 시도가 가까워지고 있습니다. 다음과 같이 작동합니다.

Dim startdate As DateTime = DateTime.Parse(parametersTransactional(Array.FindIndex(parametersTransactional, Function(x) x.Name = "StartDate")).Value) 
+0

나는 이것을 시도 할 것이다. 감사! – BClaydon

관련 문제