婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法

vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法

熱門標簽:長沙電銷外呼防封卡是什么 外呼線路資源屬于電信業務嗎 小裙科技電銷機器人怎樣 智能外呼系統官網 crm外呼系統聯系方式 青白江400企業電話申請 呼和浩特外呼系統原理是什么 內蒙古營銷智能外呼系統哪個好 河南電話外呼系統招商

說起來,查看Mongodb官方的接口文檔是場噩夢,盡管mongodb官方花了大力氣整頓了它的API,但是簡單的接口羅列,0代碼示范,讓人無從開始。幸虧有很多天才,成功破譯,我才得以沿著他們走的路,照貓畫虎的走下去。整個項目結構如下:

類文件中vbtest.vb數據庫實體類對應著mongodb文檔vbtest,用于數據操作測試

Imports MongoDB.Bson

Public Class vbtest
 Public _id As ObjectId
 Public content As String
End Class

(optional)vbmongo.vb是綁定好數據庫實體類vbtest的版本

Imports MongoDB.Bson
Imports MongoDB.Driver

Public Class vbmongo
 Public client
 Public collection As IMongoCollection(Of vbtest)
 Public database As IMongoDatabase
 Public mlist As List(Of vbtest)
 Public builder As FilterDefinitionBuilder(Of vbtest) = New FilterDefinitionBuilder(Of vbtest)
 Public filter As FilterDefinition(Of vbtest)
 Public Sub New(ByVal dbname As String, ByVal collectionname As String)
  client = New MongoClient("mongodb://127.0.0.1:27017")
  database = client.GetDatabase(dbname)
  collection = database.GetCollection(Of vbtest)(collectionname)
 End Sub

 Public Async Function loadrecords() As Task(Of List(Of vbtest))
  filter = builder.Ne(Of ObjectId)("_id", New ObjectId())//_id不等于空的記錄,通過這種方法蹩腳的實現了查找全部的功能Builder的大多數條件設置函數都用到了泛型Ne(Of TField)
  Dim mlist As List(Of vbtest) = Await collection.Find(filter).ToListAsync()//TField可以理解為 type of field 對應的是實體類中字段的數據類型例如 OBjectId或者String等等
  Return mlist
 End Function
 Public Async Function loadone(ByVal _id As String) As Task(Of vbtest)
  filter = builder.Eq(Of ObjectId)("_id", New ObjectId(_id))
  Dim mlist As vbtest = Await collection.Find(filter).FirstOrDefaultAsync()
  Return mlist
 End Function

 Public Async Function updateone(ByVal _id As String, ByVal doc As vbtest) As Task(Of vbtest)
  filter = builder.Eq(Of ObjectId)("_id", New ObjectId(_id))
  Dim up As UpdateDefinitionBuilder(Of vbtest) = New UpdateDefinitionBuilder(Of vbtest)()
  Dim updef As UpdateDefinition(Of vbtest)
  updef = up.Set(Of String)("content", doc.content)
  '.Set(Of String)("content", doc)
  collection.UpdateOneAsync(filter, updef)
 End Function

End Class

說起來mongodb的連接可以分幾步,根據連接字符串打開鏈接,獲取數據庫,獲取文檔,進而在文檔的基礎上進行增刪改查。對于vb.net操作mongodb,完全是根據c#的操作范例,根據vb.net的語法特點臨摹出來的。

首先需要對項目進行Nuget包的安裝,我們要搜尋的是MongoDB.Driver

這里創建了一個vb.net的泛型類vbmongoT,只寫了單個查找,查找列表和更新操作,函數中大量成對出現了Async和Await關鍵字,用于標識該功能使用了異步編程,在窗體程序中進行調用的時候,仍需要在成對的使用Async Await的關鍵字,因為異步函數返回的往往是TaskTResult>類型(c#)或者 Task(Of TResult) (vb.net)需要在調用函數體中使用await關鍵字拿到最終結果Imports MongoDB.BsonImports MongoDB.Driver

Public Class vbmongoT(Of T)
 Public client
 Public collection As IMongoCollection(Of T)
 Public database As IMongoDatabase
 Public mlist As List(Of T)
 Public builder As FilterDefinitionBuilder(Of T) = New FilterDefinitionBuilder(Of T)
 Public up As UpdateDefinitionBuilder(Of T)
 Public updef As UpdateDefinition(Of T)
 Public filter As FilterDefinition(Of T)
 Public Sub New(ByVal dbname As String, ByVal collectionname As String)
  client = New MongoClient("mongodb://127.0.0.1:27017")
  database = client.GetDatabase(dbname)
  collection = database.GetCollection(Of T)(collectionname)
 End Sub

 Public Async Function loadrecords() As Task(Of List(Of T))
  filter = builder.Ne(Of ObjectId)("_id", New ObjectId())
  Dim mlist As List(Of T) = Await collection.Find(filter).ToListAsync()
  Return mlist
 End Function
 Public Async Function loadone(ByVal _id As String) As Task(Of T)
  filter = builder.Eq(Of ObjectId)("_id", New ObjectId(_id))//_id滿足查找條件的記錄,Builder的大多數條件設置函數都用到了泛型:例如Ne(Of TField)
  Dim mlist As T = Await collection.Find(filter).FirstOrDefaultAsync() 
  Return mlist 
 End Function 
 Public Async Function updateone(ByVal filter As FilterDefinition(Of T), ByVal updef As UpdateDefinition(Of T)) As Task(Of T) 
  'updef = up.Set(Of String)("content", doc.content) '.Set(Of String)("content", doc) 
  Await collection.UpdateOneAsync(filter, updef) 
 End Function 
End Class

在mongodb這一版本的官方API里,IMongoCollection對象是查找,添加,更新,刪除等動作的發起者,這里面查找,更新,刪除都要用到查詢條件,

官方謂之filter(過濾器)C#: FilterDefinitionT> VB.net:FilterDefinition (Of T)

而過濾器是過濾器模具的建模結果

過濾器模具:C#: FilterDefinitionBuilderT> VB.net:FilterDefinitionBuilder (Of T)

在Mongodb.Driver這個大類下面 建議直接翻看FilterDefinitionBuilder的介紹 https://mongodb.github.io/mongo-csharp-driver/2.10/apidocs/html/T_MongoDB_Driver_FilterDefinitionBuilder_1.htm

同樣的數據庫文檔的更新操作由UpdateDefinitionBuilder 設置更新字段后產生的 UpdateDefinition完成

窗體程序部分

Imports MongoDB.Bson
Imports MongoDB.Driver

Public Class Form1
 Public client
 Public bsdoc As vbtest
 Public collection As IMongoCollection(Of vbtest)
 Public database As IMongoDatabase
 Public mlist As List(Of vbtest)
 Public builder As FilterDefinitionBuilder(Of vbtest) = New FilterDefinitionBuilder(Of vbtest)
 Public vm As vbmongoT(Of vbtest) = New vbmongoT(Of vbtest)("meandmycoach", "vbtest")
 Public filter As FilterDefinition(Of vbtest)
 Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  bsdoc.content = RichTextBox1.Text
  vm.filter = vm.builder.Eq(Of ObjectId)("_id", New ObjectId(ComboBox1.Text))
  vm.up = New UpdateDefinitionBuilder(Of vbtest)
  vm.updef = vm.up.Set(Of String)("content", bsdoc.content)
  'vm.up.Set(Of String)("content", bsdoc.content)
  vm.updef = vm.up.Combine(vm.updef)
  vm.updateone(vm.filter, vm.updef)

 End Sub

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  vm = New vbmongoT(Of vbtest)("meandmycoach", "vbtest")
  Dim bsdoc As vbtest = New vbtest()
 End Sub

 Private Async Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
  mlist = Await vm.loadrecords()
  For i As Integer = 0 To mlist.Count - 1
   ComboBox1.Items.Add(mlist(i)._id.ToString())
  Next
  ComboBox1.Text = ComboBox1.Items(0)
  Label2.Text = mlist.Count.ToString()
 End Sub

 Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged

 End Sub

 Private Async Sub ComboBox1_TextChanged(sender As Object, e As EventArgs) Handles ComboBox1.TextChanged
  bsdoc = Await vm.loadone(ComboBox1.Text)
  RichTextBox1.Text = bsdoc.content
 End Sub

 Private Async Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

 End Sub
End Class

功能描述:通過點擊圖片,加載所有的vbtest文檔記錄,combobox1專門用于顯示ObjectId,可以通過ToString()方法轉換為普通字符串

隨著下拉框ObjectId的改變,richtext1控件加載vbtest實體類對應記錄的Content字段,可以更改字段內容后點擊更新提交按鈕完成文檔的UpdateOneAsync操作

總結

到此這篇關于vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的文章就介紹到這了,更多相關vs2019連接 mongodb4.2內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MongoDB 用戶管理
  • Linux安裝MongoDB啟動及常見問題解決
  • MongoDB如何查看版本信息詳解
  • Centos7 yum安裝mongodb實現步驟詳解
  • mongodb 4.0副本集搭建的全過程
  • .Net Core使用MongoDB的詳細教程
  • 開源 5 款超好用的數據庫 GUI 帶你玩轉 MongoDB、Redis、SQL 數據庫(推薦)
  • MongoDb CPU利用率過高問題如何解決

標簽:楚雄 菏澤 安順 呼倫貝爾 白山 舟山 黃石 池州

巨人網絡通訊聲明:本文標題《vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法》,本文關鍵詞  vs2019,下用,vb.net,編寫,窗體,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法》相關的同類信息!
  • 本頁收集關于vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品区一区二区三| 日韩在线一区二区| 无码av中文一区二区三区桃花岛| 久久se这里有精品| 欧美在线播放高清精品| 欧美高清在线精品一区| 日本中文在线一区| 91精品1区2区| 中文字幕+乱码+中文字幕一区| 日日夜夜一区二区| 91美女在线看| 亚洲欧洲www| 国产福利精品一区| 日韩欧美亚洲一区二区| 午夜成人在线视频| 95精品视频在线| 国产精品视频九色porn| 国产伦精品一区二区三区免费迷 | 亚洲成av人片一区二区| 白白色亚洲国产精品| 久久综合久色欧美综合狠狠| 日韩福利视频导航| 欧美日韩国产免费| 亚洲风情在线资源站| 日本道免费精品一区二区三区| 日本一区二区三区国色天香| 麻豆传媒一区二区三区| 精品污污网站免费看| 国产精品免费视频一区| 久国产精品韩国三级视频| 欧美视频中文一区二区三区在线观看| 日韩一级欧美一级| 日日夜夜免费精品| 欧美日韩精品电影| 日本一区二区三区国色天香 | 六月婷婷色综合| 欧美美女一区二区| 亚洲欧美日韩电影| 国产精品一区二区久久精品爱涩| 欧美一区二区三区思思人| 亚洲午夜私人影院| 欧美体内she精高潮| 一区二区在线观看视频在线观看| 成人免费视频一区二区| 国产日韩欧美高清在线| 国产在线不卡视频| 久久综合五月天婷婷伊人| 久久精品99国产精品日本| 欧美一区二区三区四区视频 | 欧美理论在线播放| 亚洲五码中文字幕| 欧美日韩成人在线| 日本不卡不码高清免费观看| 91麻豆精品国产综合久久久久久| 午夜激情久久久| 欧美一区二区三区免费视频| 日韩av一级电影| 精品国产一区二区亚洲人成毛片| 亚洲成人动漫在线免费观看| 99视频在线精品| 国产精品美女久久久久久| 久色婷婷小香蕉久久| 欧美激情一区二区三区全黄| 成人免费视频caoporn| 国产精品久久毛片av大全日韩| 99久久国产综合精品女不卡| 一区二区日韩电影| 欧美精品日韩一区| 国产乱子轮精品视频| 欧美激情一二三区| 在线观看免费亚洲| 五月天精品一区二区三区| 精品久久一二三区| 波多野结衣在线一区| 亚洲一区二区三区美女| 日韩你懂的在线播放| 国产不卡免费视频| 亚洲国产精品自拍| 2017欧美狠狠色| 一本大道久久a久久精品综合| 日韩黄色小视频| 亚洲国产高清aⅴ视频| 在线欧美日韩精品| 午夜欧美2019年伦理| 欧美一级夜夜爽| 国产精品91一区二区| 午夜久久久久久电影| 久久免费国产精品| 欧美视频精品在线| 国产成a人无v码亚洲福利| 亚洲gay无套男同| 日韩视频在线观看一区二区| 99麻豆久久久国产精品免费优播| 日韩电影在线观看电影| 亚洲欧美日韩系列| 欧美mv日韩mv国产网站| 色婷婷综合五月| 国产真实精品久久二三区| 亚洲一级不卡视频| 国产精品日韩成人| 欧美成人精精品一区二区频| 色婷婷久久久亚洲一区二区三区| 久久99国产精品尤物| 亚洲午夜在线电影| 中文字幕亚洲在| 26uuu亚洲综合色欧美| 欧美日韩一区二区三区在线| 成人丝袜视频网| 污片在线观看一区二区| 国产精品女同互慰在线看| 精品卡一卡二卡三卡四在线| 91精品国模一区二区三区| 欧洲中文字幕精品| 92国产精品观看| 成年人午夜久久久| 国产 日韩 欧美大片| 极品少妇xxxx偷拍精品少妇| 日韩**一区毛片| 日韩成人午夜电影| 天天影视网天天综合色在线播放| 亚洲激情图片qvod| 国产精品免费视频观看| 亚洲国产精品精华液2区45| 亚洲精品一区二区三区四区高清 | 中文字幕欧美激情一区| 精品国产乱码久久| 久久午夜电影网| 亚洲精品在线免费观看视频| 欧美猛男gaygay网站| 色婷婷国产精品| 99国产精品99久久久久久| 国产精品888| 日日夜夜精品视频免费| 国产精品国产三级国产aⅴ中文 | 国产一区二区三区最好精华液| 日韩高清不卡一区| 美女脱光内衣内裤视频久久影院| 一区二区三区四区不卡在线| 亚洲国产成人91porn| 一个色综合网站| 人人狠狠综合久久亚洲| 麻豆91在线播放| 国产成人午夜精品5599| av毛片久久久久**hd| 91麻豆福利精品推荐| 欧美视频一区在线| 日韩欧美国产午夜精品| 久久久久久久性| 亚洲欧美综合在线精品| 亚洲老妇xxxxxx| 日韩不卡在线观看日韩不卡视频| 六月丁香婷婷久久| 成人福利视频网站| eeuss鲁一区二区三区| 大尺度一区二区| 国产伦精一区二区三区| 色欧美88888久久久久久影院| 欧美精品乱码久久久久久按摩| 欧美成人性福生活免费看| 中日韩av电影| 亚洲va欧美va人人爽午夜| 狠狠色丁香久久婷婷综合丁香| 国产成人免费视| 欧美在线观看视频在线| 精品粉嫩aⅴ一区二区三区四区| 国产精品久久久久久久蜜臀| 午夜影院久久久| 高清不卡一二三区| 欧美日韩一本到| 日韩精品一区二区三区老鸭窝| 日本一区二区在线不卡| 五月天中文字幕一区二区| 国产成人免费9x9x人网站视频| 一区二区三区在线观看国产| 国产精品污网站| 亚洲丝袜自拍清纯另类| 亚洲国产综合91精品麻豆| 国产精品系列在线观看| 欧美自拍偷拍午夜视频| 国产日产欧美一区| 午夜影院久久久| 另类的小说在线视频另类成人小视频在线 | caoporn国产一区二区| 欧洲一区二区av| 久久久av毛片精品| 日韩av一区二| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久久久久久性| 91视频观看视频| 欧美一级久久久| 亚洲国产一区在线观看| 91麻豆免费在线观看| 国产日韩av一区二区| 精品综合久久久久久8888| 欧美三级资源在线| 亚洲欧美福利一区二区| 成人免费观看视频| 久久综合久久综合亚洲| 亚洲国产一区二区视频| 国产精品456|