2015-03-30 3 views
1

Я разрабатываю в vb.netиспользование двойных кавычек в качестве строки

Dim dtDetails As DataTable = Utility.GetDetailsTable() 
Dim resource_id As String = "" 

Dim dtrow = dtDetails.Select("id='" & user_id & "'") 
If dtrow.Length > 0 Then 
    For i As Integer = 0 To dtrow.Length - 1 
     If i > 0 Then 
      resource_id += "," 
     End If 
     resource_id += Convert.ToString(dtrow(i)("instance_id")) 
    Next 

, но когда я использую resource_id дальше, он не работает, Docs возвращается как пустой

Dim resource_ids = New BsonValue() {resource_id} 
Dim querys = Query.And(
    Query.EQ("user_id", user_id), 
    Query.In("resource_id", resource_ids) 
) 

Dim Docs = ceilometer.GetCollection("meter").Find(querys) 

потому, что мне это нужно в этом формате BsonValue(){"resource_id1","resource_id2"}. Помогите мне решить эту проблему

+0

[это может быть помощь] (http://stackoverflow.com/a/24145158/ 1070452) трудно сказать из вопроса – Plutonix

ответ

1

Насколько я понял ваш вопрос, я считаю, что вам нужно добавить динамические идентификаторы в массив BsonValue. Использование расширения из answer:

<Extension()> _ 
Public Sub Add(Of T)(ByRef arr As T(), item As T) 
    Array.Resize(arr, arr.Length + 1) 
    arr(arr.Length - 1) = item 
End Sub 

Что вы можете использовать в своем коде, как:

Dim dtDetails As DataTable = Utility.GetDetailsTable() 
Dim resource_ids As new BsonArray 

Dim dtrow = dtDetails.Select("id='" & user_id & "'") 
If dtrow.Length > 0 Then 
    For i As Integer = 0 To dtrow.Length - 1 
     resource_ids.Add(Convert.ToString(dtrow(i)("instance_id"))) 
    Next 
End If 

Dim queries = Query.And(
    Query.EQ("user_id", user_id), 
    Query.In("resource_id", resource_ids) 
) 

Dim Docs = ceilometer.GetCollection("meter").Find(queries) 
+0

Он показывает ошибку "add не является членом system.array" в resource_ids.Add (Convert.ToString (dtrow (i) ("instance_id"))) –

+0

Вы добавили расширение? – chridam

+0

какое расширение? Я добавляю MongoDB.Bson, Driver, Driver.Builders –

Смежные вопросы