vs2019 下用 vb.net编写窗体程序连接 mongodb4.2的方法_MongoDB

来源:脚本之家  责任编辑:小易  

百度一下,下载一个密钥呗www.zgxue.com防采集请勿采集本网。

说起来,查看Mongodb官方的接口文档是场噩梦,尽管mongodb官方花了大力气整顿了它的API,但是简单的接口罗列,0代码示范,让人无从开始。幸亏有很多天才,成功破译,我才得以沿着他们走的路,照猫画虎的走下去。整个项目结构如下:

Dim conn As New System.Data.SQLite.SQLiteConnection("data source=D:\办公系统\bin\data") conn.Open() Dim cmd As New System.Data.SQL

类文件中vbtest.vb数据库实体类对应着mongodb文档vbtest,用于数据操作测试

没有啥本质区别,可能是我现在还没接触到。 只要函数签名一样都可以调用。 不过c#的dll和vb可能有些不同。

Imports MongoDB.BsonPublic Class vbtest Public _id As ObjectId Public content As StringEnd Class

1234567891011121314151617181920212223Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

(optional)vbmongo.vb是绑定好数据库实体类vbtest的版本

你检查一下,这个路径对不对。 另外,这种形式的路径,我觉得,不应该叫相对路径。只是形式上相似。实际上完整的路径字符串,还是绝对路径,你可以用msgbox或者其他方式,把这

Imports MongoDB.BsonImports MongoDB.DriverPublic 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 FunctionEnd Class

基本语法相同,其他的差距很大,不可同日而语。vb已经不再用了

说起来mongodb的连接可以分几步,根据连接字符串打开链接,获取数据库,获取文档,进而在文档的基础上进行增删改查。对于vb.net操作mongodb,完全是根据c#的操作范例,根据vb.net的语法特点临摹出来的。

(1)abc是对的。d错的,sln是xml文件 (2)c是错误的,对象是类的实例,类和类才能有继承关系

首先需要对项目进行Nuget包的安装,我们要搜寻的是MongoDB.Driver

vs包括vb、vc、等等 是可以写vb.net的 安装的时候只选择vb即可

这里创建了一个vb.net的泛型类vbmongoT,只写了单个查找,查找列表和更新操作,函数中大量成对出现了Async和Await关键字,用于标识该功能使用了异步编程,在窗体程序中进行调用的时候,仍需要在成对的使用Async Await的关键字,因为异步函数返回的往往是Task<TResult>类型(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

在第二个文本框的CHANGE事件中写入 TEXT3.SetFocus

在mongodb这一版本的官方API里,IMongoCollection对象是查找,添加,更新,删除等动作的发起者,这里面查找,更新,删除都要用到查询条件,

呜呜,分都给我吧 me.表一TableAdapter.Update(Me.ShujukuDataSet.表一)

官方谓之filter(过滤器)C#: FilterDefinition<T> VB.net:FilterDefinition (Of T)

是的,asp.net vb.ne c#都是.net框架下的语言. XP和windows2000 都是微软的系统,都是基于NT核心的操作系统,区别在于XP是2000的升级版.XP版本中没有SERVER版的系统

而过滤器是过滤器模具的建模结果

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x(3) As Integer x = {2, 8, 10, 12} TextBox1.Text = x(0) &

过滤器模具:C#: FilterDefinitionBuilder<T> 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

是1样的,只是叫法不同,原理都是相同的

同样的数据库文档的更新操作由UpdateDefinitionBuilder 设置更新字段后产生的 UpdateDefinition完成

VB6.0与VS2010根本不是一个编译环境。 VB6.0的工程不能直接用VS2010打开,只有参照他画界面,然后对应事件拷贝代码。 拷贝过去的代码也只能保证60%的相似率,你还要

窗体程序部分

Imports MongoDB.BsonImports MongoDB.DriverPublic 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 SubEnd Class

功能描述:通过点击图片,加载所有的vbtest文档记录,combobox1专门用于显示ObjectId,可以通过ToString()方法转换为普通字符串

随着下拉框ObjectId的改变,richtext1控件加载vbtest实体类对应记录的Content字段,可以更改字段内容后点击更新提交按钮完成文档的UpdateOneAsync操作

总结

到此这篇关于vs2019 下用 vb.net编写窗体程序连接 mongodb4.2的文章就介绍到这了,更多相关vs2019连接 mongodb4.2内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

EeSs:求一个在VS2008环境下用VB开发的宿舍管理系统,最好是采用access数据库,为获取建议,你需要提供有效的电子信箱地址。您还可以使用百度Hi联系我们或QQ:六伍柒幺伍六幺伍 ('幺'读 yao 一声)根据本题目我们可以提供一份与要求相匹配的程序ES:\7DD5B2D686193A3FC19FACCEF572FBCAEeSs:求一个在VS2008环境下用VB开发的宿舍管理系统,最好是采用access数据库,交易提醒:预付订金是诈骗内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • mongodb修改、删除文档的域属性实例
  • mongo数据集合属性中存在点号(.)的解决方法
  • mongodb系列教程(六):java操作mongodb实例
  • 详解mongodb 主从配置
  • java操作mongodb数据库示例分享
  • mongodb如何对数组中的元素进行查询详解
  • 使用zabbix监控mongodb的方法
  • nosql反模式 - 文档数据库篇
  • mongodb自动删除过期数据的方法(ttl索引)
  • mongodb简介 mongodb五大特色
  • 求一个在VS2008环境下用VB开发的宿舍管理系统,最好是采用...
  • vb.ne2010t过期了,又不想买密钥,有什么办法破解
  • VB 与VS中的VB有区别吗?
  • 求一个在VS2008环境下用VB开发的宿舍管理系统,最好是采用...
  • 请在vs2008中用vb.net写asp.ne代码t帮助我:收QQ邮件读正文内...
  • VC6.0下生成的DLL和在VS2005下用C++或C#或VB生成的DL...
  • 请用 VB.ne编写一个小应用.按下按钮后计算符合条件的一个三...
  • vb.ne连接access数据库时的相对路径
  • vb.ne和vb有什么共同点
  • VB.NE多选题定义知识点
  • visual studio 2015可以写vb.ne吗t
  • vb.ne t2010 环境 。实现提取网页制定范围内的内容
  • vb.ne获得焦点
  • 初学VB.NE连接数据库 不知道怎么操作 跪求高手指点
  • asp.net vb.ne c#都是.net框架下可以使用的编程语言吗
  • vb2010.ne从数组x={2,8,10,12}中选取3个元素的所有排列(从小...
  • 这怎么做用vb2008.ne
  • B型B超定位电磁冲击波体外碎石机与体外震波排石机1样...
  • 在VS2010的vb里打开VB6的工程文件的方法
  • VS2012可以写VB程序吗
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mongodb修改、删除文档的域属性实例mongo数据集合属性中存在点号(.)的解决方法mongodb系列教程(六):java操作mongodb实例详解mongodb 主从配置java操作mongodb数据库示例分享mongodb如何对数组中的元素进行查询详解使用zabbix监控mongodb的方法nosql反模式 - 文档数据库篇mongodb自动删除过期数据的方法(ttl索引)mongodb简介 mongodb五大特色mongodb常用操作命令大全mongodb各种查询操作详解mongodb数据库插入、更新和删除操mongodb 数据库操作--备份 还原 mongodb插入数据的3种方法mongodb中使用distinct去重的简单mongodb整库备份与还原以及单个cmongodb查询操作限制返回字段的方浅谈mysql和mariadb区别(mariadbmongodb 实现远程连接mongodb批量删除gridfs文件实例mongodb中的参数限制与阀值详析mongodb使用自带的命令行工具进行备份和恢mongodb实现的关联表查询功能【populatiomongodb中javascript脚本编程简介和入门实mongodb创建一个索引而性能提升1000倍示例mongodb中的mapreduce简介mongodb入门教程之windows下的mongodb数据mongodb入门教程之索引操作浅析mongodb索引使用详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved