Selecting/Filtering 来自 Visual Basic .NET 中 LiteDB 的数据
Selecting/Filtering Data from LiteDB in Visual Basic .NET
我正在尝试从 LiteDB NOSQL 数据库中检索数据,但我很难在 Visual Basic 中获得正确的语法。
数据库创建正确(在 LiteDBViewer 中验证)并且我可以计算集合中的值,但是当我尝试使用 collection.Find()
生成查询时,Intellisense 放入 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 或遗漏一些明显的东西。
感谢所有帮助或建议。
在 Twitter 上与开发人员交谈时,他建议使用 Lambda 表达式。
结果如下:
Dim brands_results = brands.Find(Function(x) x.Name.Equals(SelectedBrand))
(SelectedBrand
是之前声明的字符串变量)
我正在尝试从 LiteDB NOSQL 数据库中检索数据,但我很难在 Visual Basic 中获得正确的语法。
数据库创建正确(在 LiteDBViewer 中验证)并且我可以计算集合中的值,但是当我尝试使用 collection.Find()
生成查询时,Intellisense 放入 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 或遗漏一些明显的东西。
感谢所有帮助或建议。
在 Twitter 上与开发人员交谈时,他建议使用 Lambda 表达式。
结果如下:
Dim brands_results = brands.Find(Function(x) x.Name.Equals(SelectedBrand))
(SelectedBrand
是之前声明的字符串变量)