![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VB.NET学习笔记
文章平均质量分 93
zyjq52uys
学习VB.NET
展开
-
解决32位Windows7离线安装VS2019无法下载闪退等问题
之前的电脑硬盘彻底坏了,换了新的硬盘,可是在安装VS2019时老是出现问题,记录一下,一来给自己做个总结,也可给遇到问题的朋友做借鉴。一、官网下载安装程序VS最新版本下载地址(目前最新版本为VS2019):VS2019有三个版本,我下载的是社区版,可以免费使用。下载下来是这样的一个文件:vs_community__1009552245.1587601364.exe。这个并不是真正的安...原创 2020-04-24 11:42:10 · 2656 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——微软官方原版SqlHelper类
SQLHelper.vb是2004年微软发布的一个使用ADO.Net方法对SQL Server数据库进行操作的封装类。在网上贴出的SqlHelper类大多是C#版本,如果需要VB.NET版本的微软官方原版SqlHelper类,可以进行如下操作获取。一、获取SQLHelper.vb需要从微软官方下载Data Access Application Block for .NET v2,下载地址:ht...原创 2019-04-09 09:33:02 · 833 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——书写SQL语句时处理系统关键字如DEFAULT、ON、position等
一、默认值和级联更新删除关键字DEFAULT和ONDEFAULT和ON是MS ACCESS SQL系统关键字,SQL语句中如果含有系统关键字,在ACCESS界面是无法执行的。如下SQL语句:Create TABLE periodtbl(PDID AUTOINCREMENT,PDname text(10) NOT NULL,CONSTRAINT pk_periodtbl_PDID PRI...原创 2019-04-09 10:32:59 · 663 阅读 · 0 评论 -
VB.NET学习笔记:异步委托实现等待窗体(loading界面),执行任务超时可以取消操作
为了给用户提供更好的体验,读取数据库等程序需要长时间来执行的操作,需要弹出一个等待界面。可以一边执行需要等待的操作,一边显示一个等待界面。当执行完毕时等待界面消失。用户可以提前取消操作,还可以设置操作的最大等待时间,若超过指定时间仍没完成操作可结束当前操作。如图所示:从上图可以看到等待窗体是透明的。首先新一个Windows窗体应用项目,包含两个窗体:等待窗体LoadForm和主窗体Ma...原创 2019-04-12 16:47:21 · 2664 阅读 · 0 评论 -
VB.NET学习笔记:再谈委托——同步、异步、Lambda 表达式和内置委托
由于近期在研究防止窗体假死该如何给长时间运行的方法加一个等待的画面,需要用到异步委托和Lambda 表达式,所以紧急饿补了相关内容,现把学习感受记录备查。相关博文:《异步委托实现等待窗体(loading界面),执行任务超时可以取消操作》本文主要是简化《程序长时间执行任务时窗体会失去响应造成假死避免重复点击按钮的解决思路》一文代码,更突出问题。一、窗体假死新建一个windows窗体应用程序,...原创 2019-04-16 09:46:06 · 2581 阅读 · 0 评论 -
VB.NET学习笔记:多线程编程
在《多线程加委托实现等待窗体(loading正在加载界面),运行超时可以取消操作》一文中使用到了多线程编程,在这里做个笔记。我们继续使用《再谈委托——同步、异步、Lambda 表达式和内置委托》一文的示例代码为本文示例。原文中使用异步委托调用同步方法,即: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles B...原创 2019-04-16 10:44:14 · 4185 阅读 · 0 评论 -
VB.NET学习笔记:扩展 DataGridView 的功能——在HeaderCell中显示行号方法集锦
使用VB.NET开发WinForm程序时,使用DataGridView控件的时候经常需要在HeaderCell行头中显示行号,方便知道现在操作到哪一行了。笔者从网上收集了一些方法,并进行了测试。效果如图:一、使用DataGridView控件的相关事件方法1:Private Sub DataGridView1_RowStateChanged(sender As Object, e As Da...原创 2019-04-16 16:51:45 · 1591 阅读 · 0 评论 -
VB.NET学习笔记:多线程加委托实现等待窗体(loading正在加载界面),运行超时可以取消操作
在《异步委托实现等待窗体(loading界面),执行任务超时可以取消操作》一文,通过异步委托貌视能很好的实现了所要的效果,但因异步委托无法控制线程进度,也就是说不能人工干预线程,所以取消操作就是一摆设,存在BUG,本文通过多线程修改了该BUG。等待窗体WaitForm代码如下:Imports System.ThreadingPublic Class WaitForm Priva...原创 2019-04-15 15:22:31 · 2433 阅读 · 0 评论 -
VB.NET学习笔记:如何解决多线程下WinForm窗体控件错误——DataGridView中发生异常 索引0没有值
今天在多线程环境下测试代码时DataGridView控件报错——DataGridView中发生以下异常:索引13039没有值。而且DataGridView控件刷新很慢,需要用鼠标点击DataGridView控件列标题才刷新。如图所示。测试代码如下:新建windows应用程序,包含2个窗体。窗体Form1放一个DataGridView控件和一个Button控件,界面如图所示。...原创 2019-06-05 10:27:18 · 2262 阅读 · 0 评论 -
VB.NET学习笔记:再谈WinForm窗体间相互传值(单值、多值)——属性、委托和事件
在《VB.NET学习笔记:窗体显示及互相传值》一文中,通过默认的窗体实例、保持窗体引用的全局性或在窗体构造函数中把窗体指针作为参数传递,这些方法都是直接操作窗体中的任何控件来读取和改变窗体内的信息。这样会在窗体间大量互相引用各自的成员,造成了彼此之间存在着很大的耦合性,非常不利于窗体模块间的独立,破坏了类型封装性的原则。在.NET下,还为我们提供了另外一种强大的机制来实现窗体通信,这就是委托。属...原创 2019-06-05 16:59:23 · 3204 阅读 · 0 评论 -
VB.NET学习笔记:操作数据集DataSet中DataTable数据行(DataRow)——新增、插入、复制、克隆
通常我们都知道可以使用OleDbDataAdapter对象的Fill方法从数据源检索数据并填充DataSet 中的DataTable,其实我们也可以人工为DataTable添加DataRow。一、Rows.Add和Rows.InsertAt方法Add和InsertAt方法都可以把新行添加到DataTable。新一个Windows应用程序,在Form1窗体拉入一个按钮和DataGridView...原创 2019-06-13 09:57:40 · 12024 阅读 · 1 评论 -
VB.NET学习笔记:一步一步跟我学习Windows 窗体可视化继承实现窗体复用
在一个项目中不可避免会有多个窗体的控件布局类似,里面的代码也有好多相同的,可以新建窗体,然后复制粘贴来实现窗体的重复使用,这种方式固然好,可麻烦也随之而来,随着项目的深入,不可避免的要修改窗体布局或代码等,这时就要对多个这样的窗体全部进行修改。正是如此,所以笔者决定采用继承窗体的方式来实现窗体的复用。继承窗体的操作方法窗体继承有两种方式:编程方式或使用视觉继承选取器。编程方式简单易上手,本文仅...原创 2019-06-11 11:13:36 · 1247 阅读 · 0 评论 -
VB.NET学习笔记:程序长时间执行任务时窗体会失去响应造成假死避免重复点击按钮的解决思路
一、暴露问题——窗体假死新建一个Windown窗体应用程序,在窗体代码里写入如下代码:Public Class MainForm Dim intTime As Integer = 0 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click...原创 2019-04-12 11:27:32 · 4229 阅读 · 2 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——OleDbDataAdapter的Update方法更新数据库的秘密(行状态RowState和行版本 DataRowVersion)
在《数据集DataSet数据管理(DataAdapter查询更新数据库)》一文中提到可以使用OleDbDataAdapter对象的Update方法还可将对 DataSet 所做的更改解析回数据源,实例化OleDbDataAdapter对象时必须设置InsertCommand、 UpdateCommand或 DeleteCommand属性。那么OleDbDataAdapter对象是如何知道DataS...原创 2019-04-02 16:29:07 · 2445 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——使用OleDbDataReader对象
OleDbDataReader类提供从数据源读取数据行的只进流的方法。 此类不能被继承。也就是说我们只能通过它读取数据而不能修改数据且读取记录的游标只会不断前进,每次只能读取一行,可以减少系统开销,所以高效。示例代码: '连接数据库 Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLED...原创 2019-04-01 10:46:26 · 1833 阅读 · 0 评论 -
VB.NET学习笔记:数据类型——数组的定义和使用(动态数组、二维数组)
VB.NET中,可以使用变量储存数据,例如储存学生姓名:dim strname as string="张三"可以声明多个变量来储存三年级1班全部学生姓名,为了方便,给每个学生编了号:dim 三年级1班_1 as string="张三"dim 三年级1班_2 as string="李四"原创 2019-01-15 11:50:15 · 27847 阅读 · 1 评论 -
VB.NET学习笔记:窗体显示及互相传值
很多文章里都说在Visaul Basic .NET中显示窗体之前必须先实例化,经测试,也可以与旧Visual Basic 6.0 一样不经实例化直接Form1.Show显示窗体。一、正确显示窗体新建一个窗体应用程序,再添加一个模块和一个窗体。如图:在项目属性页进行如下图设置。在模块添加如下代码:Module Module1 Public Sub Main() ...原创 2019-01-16 11:12:49 · 5211 阅读 · 0 评论 -
VB.NET学习笔记:自定义控件——扩展DataGridView控件支持全选的CheckBox列
在《VB.NET学习笔记:自定义控件之扩展DataGridViewColumnHeaderCell类增加CheckBox全选复选框》一文中通过在DataGridView控件的列表头绘制一个CheckBox控件来实现全选功能,实现起来感觉不是很顺手,今天再次仔细研读《开源DataGridView扩展(1) 扩展支持全选的CheckBox列。》博文,该文使用的是C#,我把它翻译成了VB.NET语言,记...原创 2019-01-16 15:55:11 · 1388 阅读 · 0 评论 -
VB.NET学习笔记:Microsoft Access数据库引擎(Jet、ACE)和数据库连接字符串
一、Microsoft Access数据库引擎——Jet、ACE1、Microsoft.Jet.OLEDB.4.0提供程序适用于Microsoft Access 2007以前的版本,如Microsoft Access 2000、Microsoft Access 2003等。2、Microsoft.ACE.OLEDB.12.0提供程序用于替代Microsoft.Jet.OLEDB.4.0提供...原创 2019-03-14 10:02:21 · 2644 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——ADO.NET数据访问接口
一、ADO.NET概述 Ado.net基于XML和离线计算模型。 ADO.net的两个核心组件:.Net数据提供程序、DataSet。 .net数据提供程序用来与数据库的连接,如SQLServer.net数据提供程序——System.Data.SqlClient, 访问SQl2000或以上版本;OleDb.net数据提供程序——System.Data.OleDb,主要访问Ac...原创 2019-03-14 11:54:32 · 6069 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——ADO.NET事务处理
事务由执行的单个命令或一组命令组成。 通过事务可以将多个操作合并为单个工作单元。 如果在事务中的某一点发生故障,则所有更新都可以回滚到其事务前状态。例如,假设应用程序执行两个任务。 首先使用订单信息更新表。 然后更新包含库存信息的表,将已订购的商品记入借方。 如果任何一项任务失败,则这两个更新将回滚。事务的作用:一致性:同时进行的查询和更新彼此不会发生冲突,其它用户不会看到发生了变化但尚未提...原创 2019-03-14 16:36:18 · 1227 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——在内存中构建数据库(DataSet数据集和DataTable数据表)
如有需要请参阅官方帮助:数据集、数据表和数据视图ADO.NET DataSet 是数据的一种内存驻留表示形式,无论它包含的数据来自什么数据源,都会提供一致的关系编程模型。 DataSet 表示整个数据集(相当于实体的数据库),其中包含数据表以及表间关系(约束)。我们完全可以通过编程的方式在内存中构建自己的数据库。一、创建数据集(DataSet)1、可以通过调用 DataSet 构造函数来创建...原创 2019-03-19 16:04:12 · 1860 阅读 · 0 评论 -
VB.NET学习笔记:自定义控件之扩展TEXTBOX控件——水印文字提示效果
测试环境:windows 7和Microsoft Visual Studio 2015看到一些优秀软件里的TEXTBOX文本框都有水印文字提示应该输入什么样的信息,获取光标后提示文字消失,光标离开后水印文字出现,效果杠杠的,心里琢磨着能不能在自己在软件中也弄一个这样的效果?首先想到的是利用TEXTBOX的焦点获得(Enter)和失去(Leave)事件来实现,新建一个窗体应用程序并拉入一个文本框...原创 2019-03-08 11:51:51 · 2062 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——数据集DataSet数据管理(DataAdapter查询更新数据库)
DataAdapter与数据源提供程序相关,操作ACCESS数据库数据提供程序为OleDb.net,命名空间为System.Data.OleDb,相应的DataAdapter对象在System.Data.OleDb空间里对应的是OleDbDataAdapter对象。而DataTable对象和DataSet对象同属于System.Data命名空间,可见其与数据源无关。DataTable对象可作为D...原创 2019-03-21 10:44:47 · 3735 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——执行含参数SQL语句或存储过程,防止SQL注入攻击
通过提供类型检查和验证,命令对象可使用参数来将值传递给 SQL 语句或存储过程。 与命令文本不同,参数输入被视为文本值,而不是可执行代码。 这样可帮助抵御“SQL 注入”攻击,防止攻击者将命令插入 SQL 语句而危及数据库的安全。一、执行含参数SQL语句示例代码如下:'连接数据库 Dim conn As New OleDb.OleDbConnection("Provider=...原创 2019-03-18 10:04:34 · 801 阅读 · 0 评论 -
VB.NET学习笔记:ADO.NET操作ACCESS数据库——读写ACCESS数据库的OleDbHelper帮助类
本文代码由微软官方原版SqlHelper类改编而来,如何获取微软官方原版SqlHelper类请阅读《ADO.NET操作ACCESS数据库——微软官方原版SqlHelper类》Imports System.DataImports System.Data.OleDbPublic NotInheritable Class OleDbHelper #Region "私有构造函数和方法" ...原创 2019-04-10 12:00:59 · 863 阅读 · 2 评论 -
VB.NET学习笔记:自定义控件之扩展DataGridViewColumnHeaderCell类增加CheckBox全选复选框
VB.NET虽然提供了大量控件供我们使用,但很多控件仅提供最基础的功能。比如用DataGridView控件可以非常方便显示或操作数据库数据,我们可以在首列添加DataGridViewCheckBoxColumn列进行全选或全不选操作,但Datagridview控件并没有提供我们平时用的全选或取消全选的复选框,他的表头就只有这一列的名称,这样会影响用户的使用体验。这就需要我们对DataGri...原创 2018-12-27 11:08:40 · 2784 阅读 · 0 评论