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

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

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

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

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

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

Imports MongoDB.Bson

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

(optional)vbmongo.vb是綁定好數(shù)據(jù)庫實體類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不等于空的記錄,通過這種方法蹩腳的實現(xiàn)了查找全部的功能Builder的大多數(shù)條件設置函數(shù)都用到了泛型Ne(Of TField)
  Dim mlist As List(Of vbtest) = Await collection.Find(filter).ToListAsync()//TField可以理解為 type of field 對應的是實體類中字段的數(shù)據(jù)類型例如 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的連接可以分幾步,根據(jù)連接字符串打開鏈接,獲取數(shù)據(jù)庫,獲取文檔,進而在文檔的基礎上進行增刪改查。對于vb.net操作mongodb,完全是根據(jù)c#的操作范例,根據(jù)vb.net的語法特點臨摹出來的。

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

這里創(chuàng)建了一個vb.net的泛型類vbmongoT,只寫了單個查找,查找列表和更新操作,函數(shù)中大量成對出現(xiàn)了Async和Await關鍵字,用于標識該功能使用了異步編程,在窗體程序中進行調用的時候,仍需要在成對的使用Async Await的關鍵字,因為異步函數(shù)返回的往往是TaskTResult>類型(c#)或者 Task(Of TResult) (vb.net)需要在調用函數(shù)體中使用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的大多數(shù)條件設置函數(shù)都用到了泛型:例如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對象是查找,添加,更新,刪除等動作的發(fā)起者,這里面查找,更新,刪除都要用到查詢條件,

官方謂之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

同樣的數(shù)據(jù)庫文檔的更新操作由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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

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

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

巨人網絡通訊聲明:本文標題《vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法》,本文關鍵詞  vs2019,下用,vb.net,編寫,窗體,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法》相關的同類信息!
  • 本頁收集關于vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产日韩欧美制服另类| 久久精品水蜜桃av综合天堂| 欧美亚洲动漫制服丝袜| 欧美色爱综合网| 久久久午夜精品理论片中文字幕| 国产精品高潮呻吟久久| 国产在线播放一区二区三区| www国产亚洲精品久久麻豆| 中文一区在线播放| 国产麻豆欧美日韩一区| 精品国产乱码久久久久久免费| 亚洲精品中文在线影院| 成人一区在线看| 欧美国产精品一区二区三区| 老司机精品视频在线| 日本不卡视频一二三区| 欧美三级乱人伦电影| 性做久久久久久久久| 日韩一区二区三区av| 18涩涩午夜精品.www| 欧美欧美午夜aⅴ在线观看| 久久久国产午夜精品| 成人免费视频视频在线观看免费| 精品福利一二区| av高清不卡在线| 五月激情六月综合| 精品日韩成人av| av不卡一区二区三区| 色综合久久久网| 图片区小说区区亚洲影院| 欧美成人官网二区| 色综合av在线| 国产福利一区二区三区视频在线 | 欧美剧在线免费观看网站| 日本女优在线视频一区二区| 2017欧美狠狠色| 91啪亚洲精品| 国产成人午夜99999| 婷婷开心激情综合| 成人av资源在线观看| 亚洲日本va午夜在线电影| 亚洲精品水蜜桃| 国产精品乱码一区二区三区软件 | 2020国产精品自拍| 色一情一乱一乱一91av| 福利视频网站一区二区三区| 国产一区二区三区视频在线播放| 午夜精品成人在线视频| 亚洲精品视频自拍| 日韩三级中文字幕| 亚洲精品视频在线观看免费| 国产人伦精品一区二区| 欧美电影精品一区二区| 日韩一区二区三区在线观看| 亚洲午夜精品17c| 亚洲精品美腿丝袜| 亚洲成av人片www| 日韩精品亚洲一区二区三区免费| 亚洲色图第一区| 一区二区三区精品在线观看| 香蕉成人啪国产精品视频综合网| 天天爽夜夜爽夜夜爽精品视频| 日韩精品成人一区二区三区| 欧美精品一区二区三区在线 | 国产精品一区二区不卡| 粉嫩久久99精品久久久久久夜| 97久久精品人人做人人爽| 欧美一区二区不卡视频| 色综合久久综合网欧美综合网| 在线成人午夜影院| 欧美—级在线免费片| 视频一区在线视频| 国产高清一区日本| 在线看一区二区| 欧美激情中文字幕| 欧美日韩在线精品一区二区三区激情 | 色哟哟在线观看一区二区三区| 欧美图区在线视频| 在线观看av不卡| 久久久久国产精品麻豆| 婷婷夜色潮精品综合在线| 成人激情校园春色| 国产亚洲视频系列| 一本色道久久综合狠狠躁的推荐| 精品亚洲porn| 91蝌蚪porny九色| 亚洲色图.com| 在线观看区一区二| 欧美精彩视频一区二区三区| 不卡的av在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 国产成人在线网站| 麻豆极品一区二区三区| 欧美日韩精品一区二区三区| 一色桃子久久精品亚洲| 99在线热播精品免费| 国产精品三级在线观看| 欧美日本在线观看| 日本高清无吗v一区| 一区二区三区四区视频精品免费| 99久久er热在这里只有精品15 | 亚洲精品高清在线| 3d动漫精品啪啪| 成人黄页毛片网站| 中文字幕亚洲区| 日韩美女主播在线视频一区二区三区 | 中文字幕在线不卡| 91精品久久久久久蜜臀| 99视频在线观看一区三区| 九九在线精品视频| 色综合一个色综合| 肉色丝袜一区二区| 国产成人免费在线| 一级日本不卡的影视| 欧美成va人片在线观看| 欧美色图片你懂的| av电影在线观看不卡| 国产成人精品三级| 久久99精品国产麻豆不卡| 亚洲影视在线播放| 99久久夜色精品国产网站| 国产一区二区主播在线| 久久se精品一区二区| 久久机这里只有精品| 青青草97国产精品免费观看无弹窗版| 亚洲天堂av老司机| 中文字幕一区二区三| 日韩欧美不卡在线观看视频| 日韩欧美一区在线观看| 51久久夜色精品国产麻豆| 色www精品视频在线观看| 欧美视频一区二区在线观看| 欧美日韩一级二级三级| 欧美一二区视频| 国产日本亚洲高清| 亚洲精品成人天堂一二三| 亚洲国产色一区| 日本中文一区二区三区| 日韩免费一区二区| 久久精品国产精品亚洲综合| 麻豆成人免费电影| 99re成人精品视频| 日韩一区二区三区免费观看| 亚洲成人福利片| 欧美国产在线观看| 男女视频一区二区| a4yy欧美一区二区三区| 欧美日韩国产影片| 亚洲欧美区自拍先锋| 国产精品一区一区三区| 91精品国产综合久久久久久漫画| 欧美高清在线精品一区| 激情成人午夜视频| 欧美一区二区三区喷汁尤物| 国产精品久久看| 国产一区二区不卡| 国产在线播放一区| 欧美一卡二卡三卡四卡| 奇米777欧美一区二区| 国产乱码精品1区2区3区| 九九精品一区二区| 精品捆绑美女sm三区| 麻豆国产精品777777在线| 免费在线观看视频一区| 欧美日韩中文字幕一区| 夜夜精品视频一区二区 | 一区二区日韩av| www.成人网.com| 亚洲自拍偷拍欧美| 欧美一区国产二区| 国产精品1024久久| 亚洲综合一二区| 日本午夜一区二区| 国产精品1024| 国产精品高清亚洲| 欧美羞羞免费网站| 日本怡春院一区二区| 青青草一区二区三区| 欧美一区二区三区小说| 高潮精品一区videoshd| 亚洲欧美另类久久久精品| 欧美日韩一区二区在线观看| 亚洲成人中文在线| 国产激情偷乱视频一区二区三区| 亚洲国产精品久久久久婷婷884| 一本色道久久综合亚洲91| 美国毛片一区二区| 成人精品小蝌蚪| 蜜臀av一区二区| 中文字幕色av一区二区三区| 色综合久久久久久久久久久| 亚洲综合免费观看高清完整版在线| 欧美高清精品3d| 亚洲精品亚洲人成人网| 亚洲国产精品麻豆| 国产日韩欧美不卡在线| 亚洲精品第一国产综合野| 精品少妇一区二区三区日产乱码 | 日本在线播放一区二区三区| 国产精品电影一区二区三区|