欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

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

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

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

說起來,查看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

這里創(chuàng)建了一個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對象是查找,添加,更新,刪除等動作的發(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

同樣的數據庫文檔的更新操作由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實現步驟詳解
  • mongodb 4.0副本集搭建的全過程
  • .Net Core使用MongoDB的詳細教程
  • 開源 5 款超好用的數據庫 GUI 帶你玩轉 MongoDB、Redis、SQL 數據庫(推薦)
  • MongoDb CPU利用率過高問題如何解決

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

巨人網絡通訊聲明:本文標題《vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法》,本文關鍵詞  vs2019,下用,vb.net,編寫,窗體,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法》相關的同類信息!
  • 本頁收集關于vs2019 下用 vb.net編寫窗體程序連接 mongodb4.2的方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    欧美不卡视频一区| 日韩极品在线观看| 国产成人一级电影| 白白色免费视频| 日韩欧美高清dvd碟片| 午夜a成v人精品| 熟妇女人妻丰满少妇中文字幕| 色欲综合视频天天天| 国产精品成人免费在线| 大美女一区二区三区| 在线观看日本黄色| 欧美精品一区二区三区高清aⅴ| 亚洲国产精品久久人人爱| 欧美日韩一区二区区| 精品视频在线视频| 亚洲成人在线网站| 亚洲欧美在线不卡| 日韩精品一区二区三区视频在线观看| 亚洲一区二区三区精品在线| 91丨九色丨尤物| 色狠狠综合天天综合综合| 亚洲另类在线视频| 中文字幕永久免费| 欧美一级欧美三级| 青青青伊人色综合久久| 国产一二三四五区| 国产午夜三级一区二区三| 久久精品国产一区二区三区免费看| 人妻大战黑人白浆狂泄| 精品国产乱码久久久久久老虎 | 欧美少妇性性性| 亚洲一区视频在线| 51调教丨国产调教视频| 日韩午夜精品视频| 狠狠狠色丁香婷婷综合激情 | 中文字幕第24页| 欧美高清在线精品一区| 99视频在线观看一区三区| 91福利精品第一导航| 亚欧色一区w666天堂| 一卡二卡三卡四卡| 亚洲国产精品成人久久综合一区| 成年人午夜久久久| 欧美精品一级二级| 国模无码大尺度一区二区三区| a一级免费视频| 伊人开心综合网| 人妻丰满熟妇aⅴ无码| 国产日韩v精品一区二区| av一二三不卡影片| 日韩精品综合一本久道在线视频| 韩国v欧美v亚洲v日本v| 色美美综合视频| 午夜影视日本亚洲欧洲精品| 国产伦精品一区二区三区妓女 | 亚洲二区在线播放| 亚洲香蕉伊在人在线观| 熟女俱乐部一区二区| 国产精品久久久久一区| 极品白嫩的小少妇| 久久久不卡影院| 中国老熟女重囗味hdxx| 亚洲精品一区二区三区四区高清| 成人高清在线视频| 日韩三级免费观看| 成人黄色在线网站| 欧美一二三区精品| 成人三级在线视频| 91精品国产高清一区二区三区蜜臀 | 久久综合狠狠综合久久激情| 97精品国产露脸对白| 精品奇米国产一区二区三区| 99久久免费视频.com| 日韩欧美精品在线| 91视频你懂的| 久久久久国产免费免费 | 欧美激情综合网| 国产人妻黑人一区二区三区| 中文在线一区二区 | 亚洲一二三级电影| 国产美女高潮视频| 奇米色一区二区| 色婷婷精品大视频在线蜜桃视频 | 7777精品伊人久久久大香线蕉超级流畅 | 亚洲不卡一区二区三区| a在线视频播放观看免费观看| 日韩成人精品在线观看| 在线视频中文字幕一区二区| 国产在线精品不卡| 91精品国产一区二区| www.性欧美| 视频一区中文字幕| 色香蕉久久蜜桃| 久久99深爱久久99精品| 欧美人动与zoxxxx乱| 免费人成精品欧美精品| 色香蕉久久蜜桃| 国产激情精品久久久第一区二区 | 亚洲天堂资源在线| 亚洲免费在线视频一区 二区| 三区四区在线观看| 日本伊人精品一区二区三区观看方式| 色琪琪一区二区三区亚洲区| 国产成a人亚洲| 久久久国产一区二区三区四区小说| 亚洲一区二区在线免费| 一区二区三区中文免费| 国内精品伊人久久久久av影院| 色综合视频一区二区三区高清| 国产一区二区看久久| 精品少妇一区二区三区在线视频| 国产精品一区二区在线免费观看| 亚洲欧美日韩国产综合在线| 亚洲AV成人无码精电影在线| 国内精品久久久久影院一蜜桃| 日韩精品一区二区三区三区免费| 人妻 日韩 欧美 综合 制服| 亚洲综合色婷婷| 欧美性色黄大片| 91亚洲精品久久久蜜桃| 成人欧美一区二区三区视频网页| 天堂av免费在线| 国产一级久久久久毛片精品| 欧美精品一区二区在线观看| 性欧美丰满熟妇xxxx性仙踪林| 日韩精品亚洲一区| 欧美一级午夜免费电影| 双性尿奴穿贞c带憋尿| 琪琪一区二区三区| 欧美成人欧美edvon| 泷泽萝拉在线播放| 六月丁香综合在线视频| 久久久久成人黄色影片| 精品伦精品一区二区三区视频密桃 | 丝袜亚洲另类欧美| 91精品国产乱码| 亚洲专区区免费| 免费一区二区视频| 精品国产区一区| 国产精品理论在线| 国产91精品在线观看| 亚洲欧洲三级电影| 欧美专区在线观看一区| 精品无码人妻少妇久久久久久| 三级成人在线视频| 亚洲精品在线电影| 2014亚洲天堂| 亚洲最大视频网| 一区二区三区**美女毛片| 欧美色中文字幕| 男人的天堂影院| 久久精品国产一区二区三| 国产日产欧产精品推荐色| 成人性视频免费看| 成av人片一区二区| 亚洲国产中文字幕| 日韩欧美国产综合一区 | 亚洲自拍偷拍欧美| 欧美一区二区黄| 丁香花五月婷婷| 波多野结衣在线一区| 一区二区不卡在线播放| 日韩一级高清毛片| 成年人视频软件| 91视视频在线观看入口直接观看www | 日韩一区二区精品| 刘亦菲国产毛片bd| wwwxxxx在线观看| 麻豆91精品视频| 国产精品免费av| 欧美美女bb生活片| 韩国女同性做爰三级| 不卡一区二区中文字幕| 午夜视频一区二区三区| 国产三级精品三级在线专区| 91久久国产最好的精华液| 特级西西人体wwwww| 国产不卡视频一区二区三区| 亚洲综合在线第一页| 欧美精品一区二区三区在线| 91国偷自产一区二区三区观看 | 极品白嫩少妇无套内谢| 久久99精品视频| 亚洲精品自拍动漫在线| 欧美大度的电影原声| 色偷偷一区二区三区| theav精尽人亡av| 99精品视频免费在线观看| 男人的j进女人的j一区| 亚洲色图第一区| 欧美变态凌虐bdsm| 欧美亚洲愉拍一区二区| 手机看片日韩av| 又色又爽又黄18网站| 国产激情一区二区三区四区| 亚洲成人综合在线| 国产精品久久久久久久久晋中| 日韩一级欧美一级| 一本一道波多野结衣一区二区| 中文字幕第20页|