0

我正在尝试从 LiteDB NOSQL 数据库中检索数据,但我很难在 Visual Basic 中获得正确的语法。

数据库创建正确(在 LiteDBViewer 中验证)并且我可以计算集合中的值,但是当我尝试使用 生成查询时,Intellisense 会根据文档collection.Find()放入query:=,而不是。Query.Operation

Try
    Using db As LiteDB.LiteDatabase = New LiteDB.LiteDatabase("Sig.db")
        Dim brands = db.GetCollection(Of Brand)("Brand")
        Dim brands_count As Integer = brands.Count()

        If brands_count > 0 Then
            'get Brands
             Dim brands_results = brands.Find(query:=("Name")) <-- Problem Row
             Dim brand_name As String

                    For Each result In brands_results
                        brand_name = result.Name.ToString
                        BrandGrid.Rows.Add(New String() {brand_name, True, True})
                    Next

            End If
        End Using

    Catch SQLex As LiteDB.LiteException
        MessageBox.Show(SQLex.Message, SQLex.ErrorCode.ToString, MessageBoxButtons.OK, MessageBoxIcon.Error)
    Catch ex As Exception
        MessageBox.Show(ex.Message, ex.InnerException.ToString, MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try

我想我正在努力将 c# 代码转换为 VB.net 或遗漏一些明显的东西。

所有帮助或建议表示赞赏。

4

1 回答 1

0

在 Twitter 上与开发人员交谈时,他建议使用 Lambda 表达式。

结果,该值如下:

Dim brands_results = brands.Find(Function(x) x.Name.Equals(SelectedBrand))

SelectedBrand作为之前声明的字符串变量)

于 2019-01-11T09:46:26.110 回答