为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB.NET 程序设计(下)ppt

2021-02-19 157页 ppt 3MB 17阅读

用户头像 机构认证

爱赢

公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)

举报
VB.NET 程序设计(下)pptVB.NET程序设计(下)第1章程序设计基础与集成开发环境第2章数据类型第3章程序基本控制结构第4章过程与模块第5章面向对象的基本概念第6章图形用户界面设计基础第7章文件操作与打印技术第8章Windows桌面程序开发实例第9章图形图像处理第10章多媒体程序开发第11章程序调试和异常处理技术第12章数据库访问第13章综合实例第9章图形图像处理学习目标了解VB.NET图形操作基础熟练掌握各种绘图方法掌握图像处理方法本章内容9.1图形操作基础9.2Graphics对象的创建与释放9.3坐标系9.4颜色设置9.5绘图工具9.6绘图方法...
VB.NET 程序设计(下)ppt
VB.NET程序设计(下)第1章程序设计基础与集成开发环境第2章数据类型第3章程序基本控制结构第4章过程与模块第5章面向对象的基本概念第6章图形用户界面设计基础第7章文件操作与打印技术第8章Windows桌面程序开发实例第9章图形图像处理第10章多媒体程序开发第11章程序调试和异常处理技术第12章数据库访问第13章综合实例第9章图形图像处理学习目标了解VB.NET图形操作基础熟练掌握各种绘图掌握图像处理方法本章内容9.1图形操作基础9.2Graphics对象的创建与释放9.3坐标系9.4颜色设置9.5绘图工具9.6绘图方法9.7字体绘制9.8图像处理9.1图形操作基础9.1.1System.Drawing命名空间的查看9.1.2其他命名空间的导入9.1.3在VB.NET中绘制图形的基本步骤9.1图形操作基础9.1.1System.Drawing命名空间的查看VB.NET中绘制图形主要涉及System.Drawing、System.Drawing.Drawing2D、System.Drawing.Imaging和System.Drawing.Text四个命名空间。其中System.Drawing命名空间在创建VB.NET项目时被自动引用。选择菜单选项“视图”→“其他菜单”→“类视图”打开“类视图”窗口,就可以看到被自动引用的System.Drawing命名空间。9.1图形操作基础9.1.2其他命名空间的导入System.Drawing.Drawing2D、System.Drawing.Imaging和System.Drawing.Text三种命名空间不能被自动引用,如果要利用这些命名空间进行高级绘图,需要在程序开始使用Imports语句导入。9.1图形操作基础9.1.3在VB.NET中绘制图形的基本步骤创建Graphics对象,指定绘图表面。创建画笔、画刷、填充、字体等绘图工具。使用方法绘制图形。释放Graphics对象和各种绘图工具,清屏。本步骤并不是必需的操作。返回9.2Graphics对象的创建与释放9.2.1创建Graphics对象9.2.2释放Graphics对象和清屏9.2Graphics对象的创建与释放9.2.1创建Graphics对象1.使用CreateGraphics方法创建该创建方法最常用,其为:Dim对象名AsGraphics对象名=窗体名(或控件名).CreateGraphics2.利用Image对象创建Graphics对象Dim对象名AsGraphics=Graphics.FromImage(“Image图像完整文件名(包括路径和文件名)”)3.利用PaintEventArgs参数创建Graphics对象PrivateSubForm1_Paint(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.PaintEventArgs)HandlesMyBase.PaintDim对象名AsGraphics=e.GraphicsEndSub9.2Graphics对象的创建与释放9.2.2释放Graphics对象和清屏1.释放Graphics对象Graphics对象使用后应及时删除,以释放该对象占用的资源,使用Dispose方法。格式:对象名.Dispose()2.清屏利用Graphics类的Clear方法可以清除画图工作区的所有内容,并用指定的背景颜色进行填充。格式:对象名.Clear(颜色)返回9.3坐标系9.3.1页面坐标系统9.3.2全局坐标系统9.3.3设备坐标系统9.3坐标系9.3.1页面坐标系统页面坐标系是指绘图表面Graphics对象使用的坐标系,它的长度单位是像素,坐标系的原点在绘图表面的左上角,x轴指向右,y轴指向下。页面坐标系是不能更改的,它只是一个参照。每个Graphics对象都有各自的页面坐标系。9.3坐标系9.3.2全局坐标系统全局坐标系统默认情况下x轴正方向水平向右,y轴正方向垂直向下。该坐标系可以进行平移和旋转,从而更改成日常生活中人们习惯的坐标原点位于绘图表面左下方,x轴正方向水平向右,y轴正方向垂直向上的坐标系统。9.3坐标系9.3.3设备坐标系统设备坐标系是进行绘制的物理设备(如屏幕、纸张等)所使用的坐标系。在显示器中默认坐标系的原点是在屏幕左上角,并且x轴指向右边,y轴指向下边。默认坐标系的度量单位是像素。在显示器中,基本的单位是像素(pixel),在打印机中,基本单位是点(point)。返回9.4颜色设置9.4.1系统预定义颜色9.4.2自定义颜色和透明度9.4颜色设置9.4.1系统预定义颜色Color结构可以表示145种颜色,输入“Color.”后系统自动提示颜色列表,然后选择合适的颜色即可。例如:DimuserColorasColoruserColor=Color.Red'定义为红色9.4颜色设置9.4.2自定义颜色和透明度Color类的FromArgb方法用于实现自定义颜色,使用Color.FromArgb方法时只需按顺序指定颜色中红色、蓝色和绿色各部分的色值即可,色值中的每个数字均必须是从0到255之间的整数,表示从无色到纯色的256个强度等级,其中0表示没有该颜色,255则为所指定颜色的完整饱和度;因此,Color.FromArgb(0,0,0)为黑色,而Color.FromArgb(255,255,255)为白色。例如:DimuserColorasColoruserColor=Color.FromArgb(255,0,0)'定义为红色9.4颜色设置9.4.2自定义颜色和透明度Color.FromArgb方法除了可以指定RGB(红、绿、蓝)三色之外,还有一个Alpha参数,Alpha表示所呈现图形后面的对象的透明度,在Color.FromArgb方法中四个参数的第一个参数即是Alpha参数,取值范围是从0到255之间的任一整数,0表示完全透明,255表示不透明。例如:DimuserColorasColoruserColor=Color.FromArgb(128,255,0,0)'创建自定义的红色,且约为50%透明度Color.FromArgb方法也支持Color结构的颜色表示方法,例如:Color.FromArgb(128,255,0,0)和Color.FromArgb(128,Color.Red)均表示半透明的红色。返回9.5绘图工具9.5.1画笔9.5.2画刷1.纯色画刷(SolidBrush)2.阴影画刷(HatchBrush)3.纹理画刷(TextureBrush)4.线性渐变画刷(LinearGradientBrush)5.路径渐变画刷(PathGradientBrush)9.5绘图工具9.5.1画笔System.Drawing命名空间中提供了Pen类用于绘制线条,即各种图形的边框。该类可以设定绘制线条的颜色、线宽和线条的样式。格式为:Dim画笔名称AsNewPen(颜色[,宽度])其中,“画笔名称”应该严格遵守变量名的命名规则。颜色(Color):画笔绘制的线条的颜色可以通过画笔的Color属性来改变。宽度(Width):使用该画笔时所绘线条的宽度,默认的画笔宽度是一个像素单位;样式(DashStyle):画笔绘制图形时的线型,包括实线、虚线、点线以及由点线与虚线组成的点划线、双点划线等多种样式。9.5绘图工具9.5.2画刷1.纯色画刷(SolidBrush)纯色画刷(SolidBrush)是指使用单一的颜色作为画刷的颜色,格式为:Dim画刷名称AsNewSolidBrush(颜色)9.5绘图工具9.5.2画刷2.阴影画刷(HatchBrush)阴影画刷(HatchBrush)是一种由阴影样式、前景色和背景色属性构成的画刷。格式如下:Dim画刷名称AsNewHatchBrush(类型,前景色[,背景色])9.5绘图工具9.5.2画刷3.纹理画刷(TextureBrush)纹理画笔(TextureBrush)通过使用图像作为图案来填充形状或文本,在定义该画刷前需要选定用来填充的图形文件。格式如下:Dim图像名AsBitmap(图像文件)或者Dim图像名AsImage=Image.FromFile(图像文件[,内置颜色])其中,“图像文件”代表作为填充纹理的图片的路径,“内置颜色”为true时,表示将使用图形文件内置的颜色,否则不使用。9.5绘图工具9.5.2画刷3.纹理画刷(TextureBrush)纹理画刷格式如下:Dim画刷名称AsNewTextureBrush(图像名[,模式])“模式”是指WrapMode枚举类型,表示当纹理或渐变小于所填充的区域时平铺纹理或渐变的方式。9.5绘图工具9.5.2画刷4.线性渐变画刷(LinearGradientBrush)渐变画笔支持复杂底纹。使用LinearGradientBrush,可以创建沿线性渐变的两种颜色平滑、渐进式的画刷。使用该画刷前,导入System.Drawing.Drawing2D名称空间。格式如下:Dim画刷名AsNewLinearGradientBrush(矩形结构,颜色1,颜色2,渐变模式)9.5绘图工具9.5.2画刷4.线性渐变画刷(LinearGradientBrush)格式如下:Dim画刷名AsNewLinearGradientBrush(矩形结构,颜色1,颜色2,渐变模式)矩形结构:指定线性渐变终结点的Rectangle结构,起点是矩形的左上角,终点是右上角。颜色1:表示渐变起始色的Color结构。颜色2:表示渐变结束色的Color结构。linearGradinentMode:指定渐变方向的LinearGradientMode枚举。枚举中的参数如下:BackwardDiagonal:指定从右上到左下的渐变。ForwardDiagonal:指定从左上到右下的渐变。Horizontal:指定从左到右的渐变。Vertical:指定从上到下的渐变9.5绘图工具9.5.2画刷5.路径渐变画刷(PathGradientBrush)对于复杂的路径(如多边形和不规则形状),可以使用PathGradientBrush来填充颜色。返回9.6绘图方法9.6.1绘制线条9.6.2绘制椭圆、椭圆弧和饼状图形9.6.3绘制矩形和多边形9.6绘图方法9.6.1绘制线条1.DrawLine方法该方法绘制连接两个点的直线,格式:DrawLine(画笔名,x1,y1,x2,y2)其中(x1,y1)和(x2,y2)分别表示起始点坐标和终止点坐标,坐标值可以是Integer值也可以是Single值。坐标也可采用point结构表示的坐标,格式:DrawLine(画笔名,point1,point2)2.DrawLines方法该方法绘制一系列连接一组Point结构的线段,它按顺序把每个点都连接起来,构成一段曲线,DrawLines的格式为:DrawLines(画笔名,Point())其中,Point()参数就是一个由一系列的点构成的数组,Point()中存储的数据可以是Integer型,也可以是Single型。9.6绘图方法9.6.1绘制线条3.DrawBezier方法DrawBezier方法用于绘制由4个Point结构定义的贝塞尔曲线。该方法格式如下:DrawBezier(画笔名,x1,y1,x2,y2,x3,y3,x4,y4)或者DrawBezier(Pen,Point1,Point2,Point3,Point4)在第一种格式中,x1,y1为起始点坐标,x2,y2和x3,y3为控制点坐标,这两个坐标用来控制线条的形状,x4,y4为结束点坐标。在第二种格式中,坐标点采用Point结构表示。pen它确定曲线的颜色、宽度和样式。Point1表示曲线的起始点。Point2表示曲线的第一个控制点。Point3表示曲线的第二个控制点。Point4表示曲线的结束点。9.6绘图方法9.6.1绘制线条4.DrawBeziers方法DrawBeziers方法用于根据Point结构数组绘制一系列贝塞尔线条。格式如下所示:DrawBeziers(画笔名,Point())第一个贝塞尔线条是从点数组中的第一个点到第四个点绘制成的。第二个点和第三个点是确定曲线形状的控制点。每条后续曲线只需要三个点:两个控制点和一个结束点。前一条曲线的结束点用作后一条曲线的起始点。9.6绘图方法9.6.2绘制椭圆、椭圆弧和饼状图形1.DrawEllipse方法使用DrawEllipse方法可以绘制一个由边框定义的椭圆,该边框是由椭圆的左上角坐标,高度以及宽度决定的。格式为:DrawEllipse(x,y,width,height)x,y为椭圆所在矩形区域的左上角坐标点。width为椭圆的矩形宽,height为椭圆的矩形高。如果要绘制正圆,可以将width和height的值设为相同。9.6绘图方法9.6.2绘制椭圆、椭圆弧和饼状图形2.DrawArc方法用DrawArc方法可以画一段椭圆弧,格式如下:DrawArc(画笔名,x,y,宽度,高度,起始角,扫描角)x,y,宽度,高度四个参数指定了绘制椭圆的外切矩形。GDI+以水平向右的半径为0度,然后按顺时针方向画弧。“起始角”为椭圆弧的起始角度,该角度是在指以椭圆的圆心为坐标原点、X轴向右为正方向的坐标系中,圆弧起点与X轴的夹角。“扫描角”为圆弧扫过的角度值,以“起始角”参数所指定的起点沿顺时针方向扫过的度数。9.6绘图方法9.6.2绘制椭圆、椭圆弧和饼状图形3.DrawPie方法DrawPie方法画的是一个饼状图,它和DrawArc方法一样,先画一条椭圆弧,但是它还把两个端点与圆心连接起来,形成一个饼状图,它的格式与DrawArc方法一样。格式:DrawPie(画笔名,x,y,宽度,高度,起始角,扫描角9.6绘图方法9.6.3绘制矩形和多边形1.DrawRectangle方法DrawRectangle方法可以绘制由坐标、宽度和高度指定的矩形。格式:DrawRectangle(画笔名,x,y,宽度,高度)其中x,y为矩形的左上角的坐标点,width,height分别为矩形的宽和高。9.6绘图方法9.6.3绘制矩形和多边形2.DrawRectangles方法DrawRectangles方法和DrawRectangle方法一样都是用于画矩形的,但是DrawRectangles方法是绘制一系列由Rectangle结构指定的矩形。其格式如下:DrawRectangles(画笔名,Rectangle())3.DrawPolygon方法DrawPolygon方法来绘制任意的多边形,该方法格式如下:DrawPolygon(画笔名,Points())其中,Points()为坐标点数组.。返回9.7字体绘制在VB.NET中,窗体或图片框中的文字被作为图形处理,在文本框,标签,列表框等控件中,可以通过文本和图形两种方式文成文字的输出。1.创建字体对象输出文字前要先创建字体对象,并先指定字体的名称,大小,样式等。字体对象通过Font类来创建,格式为:Dim字体对象AsNewFont(名称,大小[,样式[,量度单位]])9.7字体绘制1.创建字体对象Dim字体对象AsNewFont(名称,大小[,样式[,量度单位]])名称是指定字体名称的字符串。样式是FontStyle枚举类型,其成员有:Bold,Italic,Regular,Strikeout(中划线),Underline。量度单位是用来指定字体大小的单位,9.7字体绘制2.DrawString方法有三种格式分别为:DrawString(字符串,字体,画刷,点)DrawString(字符串,字体,画刷,矩形)DrawString(字符串,字体,画刷,x,y)“点”用来指定文本输出的开始位置,它是Point结构类型。“矩形”指定文本输出位置,它是Rectangle结构类型。x,y指定文本输出的起始位置,都是Single类型。返回9.8图像处理图像可以分为位图和矢量图两大类,本节图像处理主要是针对位图的处理。9.8.1Bitmap类常用属性1.Height获取Bitmap对象的高度(以像素为单位)。2.Width 获取Bitmap对象的宽度(以像素为单位)。3.HorizontalResolution和VerticalResolution分别表示Bitmap对象的水平或垂直分辨率,以“像素/英寸”为单位。9.8图像处理9.8.2Bitmap类常用方法1.GetPixel方法格式:对象名.GetPixel(x,y)获取Bitmap对象(x,y)点的像素的颜色。2.SetPixel方法格式:对象名.(x,y,颜色)设置Bitmap对象坐标为(x,y)像素点的颜色。3.Save方法格式:对象名.Save(文件名)将Bitmap对象保存到指定的文件或者流中。如果要保存某一种格式的位图文件,可以利用如下格式:对象名.Save(文件名,图像类型)图像类型是ImageFormat类的成员,包括Bmp(位图图像格式)、Gif(图形交换格式)、Jpeg(联合图像专家组图像格式)等。返回第10章多媒体程序开发学习目标熟练掌握WindowsMediaPlayer控件的常用属性和方法了解WindowsMediaPlayer多媒体播放器程序的开发本章内容10.1WindowsMediaPlayer控件介绍VB.NET多媒体编程技术中,WindowsMediaPlayer是最常用的控件,可以利用该控件实现视频、音频文件的播放。10.1.1添加WindowsMediaPlayer控件10.1.2WindowsMediaPlayer控件常用属性10.1.3WindowsMediaPlayer控件常用方法10.1.4WindowsMediaPlayer控件常用事件10.1WindowsMediaPlayer控件介绍10.1.1添加WindowsMediaPlayer控件WindowsMediaPlayer控件不是VB.NET标准工具箱中的控件,它是WindowsMediaPlayer播放器的中的ActiveX控件,使用之前要求系统中已经安装WindowsMediaPlayer9或以上版本播放器程序,然后再添加该控件到VB.NET标准工具箱中。10.1WindowsMediaPlayer控件介绍10.1.1添加WindowsMediaPlayer控件在VB.NET开发环境“工具箱”右键选择“选择项”,“选择工具箱项”对话框中选择“COM组件”选项卡,勾选“WindowsMediaPlayer”一项。10.1WindowsMediaPlayer控件介绍10.1.2WindowsMediaPlayer控件常用属性1.URL属性2.Ctlcontrols属性3.Settings属性4.CurrentPosition属性5.Duration属性6.UlScreen属性7.UiMode属性8.PlayState属性9.EnableContextMenu属性10.1WindowsMediaPlayer控件介绍10.1.2WindowsMediaPlayer控件常用属性1.URL属性用来指定所要播放的多媒体文件路径与文件名,可以是本机或网络地址。属性值赋值有两种方法:(1)选中“WindowsMediaPlayer”控件的属性窗口,在URL属性栏中输入多媒体文件的路径与文件名。例如:输入"D:\sound.wav"(2)在代码中指定,即将多媒体文件的路径与文件名以字符串类型指定给URL属性。例如:AxWindowsMediaPlayer1.URL="D:\sound.wav"10.1WindowsMediaPlayer控件介绍10.1.2WindowsMediaPlayer控件常用属性2.Ctlcontrols属性Ctlcontrols属性是WindowsMediaPlayer控件的一个非常重要的属性,用于控制播放器的播放、暂停、停止等功能。10.1WindowsMediaPlayer控件介绍10.1.2WindowsMediaPlayer控件常用属性3.Settings属性Settings属性用于播放器的基本设置,以下介绍该属性的几个用法:(1)Settings.volume:该属性值为整型,可将0-100间的数值赋值给该属性,用于调节播放器音量。格式为:控件名.Settings.volume=20(2)Settings.autoStar:该属性值为布尔型,用于控制是否自动播放。格式为:控件名.Settings.autoStar当为true时表示自动播放。(3)Settings.mute:该属性值为布尔型,用于控制播放是否静音。格式为:控件名.Settings.mute当为true时表示静音。(4)Settings.playCount:该属性值为整型,用于设置多媒体文件播放次数。格式为:控件名.Settings.playCount10.1WindowsMediaPlayer控件介绍10.1.2WindowsMediaPlayer控件常用属性4.CurrentPosition属性该属性值为数值类型,用于获取多媒体文件当前的播放进度。5.Duration属性该属性值为数值类型,用于获取当前多媒体文件的播放的总时间6.UlScreen属性该属性值为布尔型,用于设置播放器是否全屏显示,当值为true时,表示全屏显示。10.1WindowsMediaPlayer控件介绍10.1.2WindowsMediaPlayer控件常用属性7.UiMode属性该属性值为字符串类型,用于设置播放器界面模式,可为Full,Mini,None,Invisible等。8.PlayState属性该属性值为整型数值用于设置播放器的播放状态,每种数值代表不同的播放状态,例如“1”表示“停止”,“2”=“暂停”,“3”=“播放”,“6”=“正在缓冲”,“9”=“正在连接”,“10”=“准备就绪”。9.EnableContextMenu属性该属性值为布尔类型,用于控制启用或禁用右键菜单。10.1WindowsMediaPlayer控件介绍10.1.3WindowsMediaPlayer控件常用方法1.play方法该方法用于播放多媒体文件,格式为:控件名.Ctlcontrols.play()2.pause方法该方法用于暂停正在播放的多媒体文件,格式为:控件名.Ctlcontrols.pause()3.stop方法该方法用于停止正在播放的多媒体文件,格式为:控件名.Ctlcontrols.stop()10.1WindowsMediaPlayer控件介绍10.1.3WindowsMediaPlayer控件常用方法4.fastforward方法该方法用于将正在播放的多媒体文件快进,格式为:控件名.Ctlcontrols.fastforward()5.fastreverse方法该方法用于将正在播放的多媒体文件快退,格式为:控件名.Ctlcontrols.fastreverse()10.1WindowsMediaPlayer控件介绍10.1.4WindowsMediaPlayer控件常用事件WindowsMediaPlayer控件常用的事件有ClickEvent和StatusChange。当点击WindowsMediaPlayer时,将触发ClickEvent事件;当播放器的状态发生变化的时候,将触发StatusChange事件。第11章程序调试和异常处理技术本章内容11.1常见错误类型11.2程序的调试与中断11.3异常处理学习目标熟练掌握常见错误类型了解VB.NET的调试工具熟悉VB.NET的异常处理11.1常见错误类型VB.NET程序的错误一般分为编译错误、运行错误和逻辑错误三大类。1.编译错误2.运行错误3.逻辑错误11.1常见错误类型1.编译错误编译错误也称为语法错误,通常是指程序代码违反了VB.NET的语法规则,在编译程序期间时,如果代码中有语法错误,则编译不能通过。这类错误能够在“错误列表”窗口中给出提示。11.1常见错误类型2.运行错误程序在运行期间,当语句试图执行一个不能执行的操作时,将会发生运行期间的错误。11.1常见错误类型3.逻辑错误程序运行期间没有报错提示,但是得不到预期的结果,这类错误被成为逻辑错误。语句次序不对、循环语句起始或者终值不正确等等将很容易造成逻辑错误。返回11.2程序的调试与中断11.2.1VB.NET的工作模式11.2.2“调试”菜单和“调试”工具栏11.2.3断点11.2.4窗口11.2程序的调试与中断11.2.1VB.NET的工作模式1.设计模式在该模式下可以进行界面设计、代码编写、属性值修改等操作。2.运行模式在该模式下可以查看程序运行结果,但是不能进行界面或者代码的编辑操作。3.中断模式出现错误或者测试中途故意把程序挂起,使程序暂时停止执行。11.2程序的调试与中断11.2.2“调试”菜单和“调试”工具栏1.窗口菜单该菜单用于控制显示即时、断点、输出等窗口。2.启动、继续、全部中断和停止调试选择这些菜单分别表示“启动”、“继续”、“全部中断”和“停止调试”应用程序。3.逐语句、逐过程和跳出逐语句:这种调试方式也被称为“单步执行”,在这种调试方式下,程序将按语句的执行顺序一条一条地一次执行整个程序。逐过程:这种调试方式是指当程序执行到“函数”或者“过程”时,并不进入“函数”或者“过程”单步执行,而是执行一次整个的“函数”或者“过程”,再逐语句执行后面的语句。跳出:如果单步执行到被调用过程的某一行时,单击“调试”菜单的“跳出”命令,则程序将连续执行完该过程的其余部分,返回调用程序的下一行并回复中断模式。11.2程序的调试与中断11.2.3断点断点相当于一个信号,当程序运行到断点时,它会通知调试器在断点处暂时将程序处于中断模式。进入中断模式并不会终止或结束程序的执行。11.2程序的调试与中断11.2.3断点1.断点设置方法(1)在代码编辑窗口左侧的灰色边框点击;(2)使用功能键F9在当前光标所在行设置断点;(3)在要添加断点的行中点击右键,选择“断点”菜单中的“插入断点”。2.断点操作(1)插入断点(2)清除断点(3)禁用/启用断点11.2程序的调试与中断11.2.4窗口1.局部变量窗口2.命令窗口3.监视窗口和快速监视窗口4.自动窗口11.2程序的调试与中断11.2.4窗口1.局部变量窗口“局部变量”窗口显示在程序中定义的任何变量的有关信息。11.2程序的调试与中断11.2.4窗口2.命令窗口命令窗口又被成为即时窗口,该窗口的作用是可以直接在其中输入命令语句按“回车键”就可显示执行结果。命令语句的格式为“>变量名”。11.2程序的调试与中断11.2.4窗口3.监视窗口和快速监视窗口VB.NET提供了四个监视窗口,这样可以方便程序设计人员把要观察的变量或表达式进行分类。监视窗口的作用是可以查看程序运行过程中变量或者表达式的值。使用方法是直接将要查看的变量或者表达式输入到监视窗口的单元格中即可。11.2程序的调试与中断11.2.4窗口3.监视窗口和快速监视窗口VB.NET还提供了一个更加快捷的监视窗口就是快速监视窗口,如果要向快速查看一个或者几个变量或者表达式的值,可以直接用快速监视来计算。11.2程序的调试与中断11.2.4窗口4.自动窗口“自动”窗口用来显示当前代码行的前后两行的变量值。返回11.3异常处理错误是指程序运行过程中遇到诸如内存不足、保存文件但磁盘写保护状态等等意外或者错误情况,使得程序无法继续执行下去的情况。异常处理分为结构化异常处理和非结构化异常处理两种。11.3.1结构化异常处理结构化异常处理是指异常处理程序采用结构化的编程思想,代码封装在代码块中,代码块中利用控制结构将异常、可能存在异常的代码块和异常处理程序等结合起来,在执行期间能够检测和相应错误的代码。11.3异常处理11.3.2Try...Catch...Finally语句结构Try...Catch...Finally语句是结构化异常处理的基本结构。它测试代码片段,筛选该代码执行过程中产生的异常,并根据产生的异常类型做出不同的响应。Try可能存在异常的代码块Catch异常类型1异常处理程序1[Catch异常类型2异常处理程序1……Catch异常类型n异常处理程序n][Finally必须执行的代码块]EndTry11.3异常处理11.3.2Try...Catch...Finally语句结构1.Try代码块Try代码块包含可能存在异常的代码块,程序将尝试执行该代码块的每一个语句。如果没有任何语句发生异常,那么所有语句将会一个一个执行,直到全部执行完毕。但是,一旦出现异常就会跳出Try语句块,进入Catch.语句块。11.3异常处理11.3.2Try...Catch...Finally语句结构2.Catch代码块Catch代码块用于捕捉特定的异常,它用于标识与某特定异常关联的代码块,可以有一个或者多个Catch代码用于表示不同的异常处理情况。Catch语句可采用三种格式:Catch、Catch…As和Catch…When。11.3异常处理11.3.2Try...Catch...Finally语句结构3.Finally代码块不管Try代码块中是否抛出异常,Finally语句所包含的代码块始终会执行。第12章数据库访问本章主要内容:12.1数据库实用基础12.2ADO.NET2.0概述12.3数据源配置向导12.4数据访问中的常用控件12.1数据库实用基础关系数据库基本概念关系数据模型建立在严格的数学概念基础上,用二维表来组织数据,如下表所示。关系模型的数据结构属性(列,字段)元组(行,)学号姓名所在系性别年龄08990001王敏计算机女1808990006李跃英语男1908990012张丽娜公共管理女1908990015刘洋通信工程男18关系:一个关系对应一张二维表,通俗地讲,关系就是二维表。二维表的名字就是关系的名字,上图中的关系名为学生信息表。属性:表中的列称为属性,也叫字段。每个属性有一个名字,称为属性名,用来表示存储于数据库中的信息的类别。元组:二维表中的行称为元组,也叫记录。在上图中表示特定学生的全部信息称为一条记录。候选码:表中的某个属性或属性组可以唯一地确定一个元组,则称该属性或属性组为候选码,在一个关系上可以有多个候选码。主码:在候选码中选择一个作为主码,每个关系中只能有一个主码。对于有些关系,单一的属性不能唯一地确定一个元组,因此要两个或多个属性组合起来构成主码。例如,我们有这样一个关系,一位教师可以讲授多门课,一门课也可以由多名教师来讲授,则单独选择其中的教师号或课程号都不能唯一地确定一个元组,只有教师号和课程号组合起来才可以,因此必须选择教师号和课程号这样一个属性组用来作为主码。数据库的创建及使用本节读者将学习如何使用MicrosoftAccess以及MicrosoftSQLServer采用直观的图形化方法创建数据库。1.在MicrosoftAccess中创建及使用数据库以创建EAdmin(教务管理)数据库为例进行讲解。(1)创建数据库选择Windows系统中的“开始”→“所有程序”→Microsoftoffice→Microsoftofficeaccess启动Access。进入其工作窗口后,选择菜单“文件”→“新建”,然后单击窗体右侧新建文件项下的“空数据库”,弹出文件新建数据库对话框,在其中指定数据库文件的存储位置以及文件名。如图所示。设置完成后,单击“创建”按钮,进入如图所示的Access工作界面。(2)表的创建以创建TTec(教师授课)表为例。设计TTec表结构如下。列名说明数据类型约束Tno教师编号文本主码Cno课程编号文本主码Croom所在教室文本Ttime授课时间文本在Access中创建完数据库后,进入其工作界面,选择其中的“表”,在右侧窗口会列出可使用的创建表的方法,本例中采用表设计器,双击“使用设计器创建表“,弹出表设计器窗口,在这里设计好的表结构来创建表。(3)操纵表中数据表创建完成后,可进行数据处理,在Access工作界面中,鼠标双击要处理数据的表,进入记录编辑界面,可在其中输入、修改和删除记录。2.在SQLServer中创建及使用数据库(1)创建EAdmin(教务管理)数据库选择Windows系统中的“开始”→“程序”→MicrosoftSQLServer2005→SQLServerManagementStudio来启动SQLServer。在第一次启动时程序会自动配置环境,完成配置后会出现如图所示对话框,要求进行服务器和用户连接。填选完成后单击“连接”按钮,连接到服务器。出现如图所示的SQLServerManagementStudio主界面。鼠标右键单击对象资源管理器中的“数据库”,在弹出菜单中选择“新建数据库”菜单项,则会出现“新建数据库”界面。在“数据库名称”后输入新建的数据库名,另外,创建数据库的所有者、是否使用全文索引可进行相应修改,对于数据库文件中的逻辑名称、初始大小、增长方式、存储路径等也可以按要求来修改。本例中均采用默认值,单击“确定”按钮创建数据库。(2)创建SInfo(学生信息)表SInfo表结构如下表所示:列名说明数据类型约束No学号字符串,长度8主码Name姓名字符串,长度10非空Deptment所在系别字符串,长度20Sex性别字符串,长度2取“男”或“女”Age年龄整数取值15-70在MicrosoftSQLServerManagementStudio窗口,展开需要在其中创建表的数据库,示例中为EAdmin数据库。鼠标右键单击“表”,选择“新建表”,按设计好的表结构进行创建。设置主码及其他各种约束,完成后,单击“保存”菜单命令,会出现输入表名称的对话框,在其中输入SInfo后,单击确定,完成表的创建。(3)操纵表中数据选择刚创建的SInfo表,鼠标右键单击,选择弹出菜单中的“打开表”,在如下图所示的界面中输入记录,输入错误可在其中直接修改,如想删除整行记录,可在对应的行首单击鼠标右键,选择弹出菜单中的“删除”,然后出现删除确认窗口。编辑完成后,关闭该窗口,针对记录所作修改均会自动保存。对于使用其他一些数据库管理工具创建的表,想要在SQLServer中使用,可以选择“导入数据”,方法是鼠标右键单击需要导入数据的数据库,在弹出菜单中选择“任务”→“导入数据”,另外在SQLServer中创建的表,也可以导出为其他格式的表格,读者需在弹出菜单中选择“任务”→“导出数据”,接下来按提示即可完成。结构化查询语言SQL1.简单查询查询语句基本格式:SELECT<目标列名序列>--需要哪些列FROM<数据源>--来自于哪些表[WHERE<检索条件>]--根据什么条件[GROUPBY<分组依据列>][HAVING<组提取条件>][ORDERBY<排序依据列>][asc|desc]例:查询前例中建立的EAdmin数据库中SInfo表(学生信息表)中的全部内容。SELECT*FROMSinfo查询全体学生的学号和姓名。SELECTNo,NameFROMSinfo在实际的应用中涉及到的查询,通常都是有条件的筛选,就需要使用WHERE子句,在WHERE子句中常用的查询条件如下表所示。查询条件谓词比较运算符=,>,>=,<,<=,<>(或!=),NOT+比较运算符确定范围BETWEEN…AND,NOTBETWEEN…AND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE多重条件AND,OR比较查询:查询年龄小于18岁的学生的姓名。SELECTNameFROMSInfoWHEREAge<18确定范围:查询年龄在18-20岁之间的学生的姓名。SELECTNameFROMSInfoWHEREAgeBETWEEN18AND20确定集合:查询计算机系、电子系和英语系的学生的姓名。SELECTNameFROMSInfoWHEREDeptmentIN(‘计算机’,’电子’,’英语’)字符匹配:对于字符匹配的查询,要涉及到以下几个通配符:_:匹配任意一个字符;%:匹配0个或多个字符;[]:匹配[]中的任意一个字符;[^]:不匹配[]中的任意一个字符查询所有姓李的学生的姓名和年龄。SELECTName,AgeFROMSInfoWHERENameLIKE‘李%’查询姓李、张、赵的学生的详细情况。SELECT*FROMSInfoWHERENameLIKE‘[李张赵]%’多重条件:查询计算机系年龄大于20的学生的学号、姓名SELECTNo,NameFROMSInfoWHEREDeptment=’计算机’ANDAge>20SQL中还提供了一组计算函数,用来进行数据的统计汇总,包括如下几个函数:COUNT(*):统计表中元组个数;COUNT([DISTINCT]<列名>):统计本列列值个数;SUM([DISTINCT]<列名>):计算列值总和;AVG([DISTINCT]<列名>):计算列值平均值;MAX([DISTINCT]<列名>):求列值最大值;MIN([DISTINCT]<列名>):求列值最小值。(DISTINCT为可选关键字,如加上,表示对于相同的值只计算一次)例如:对于EAdmin数据库中的TTec表(教师授课表),要统计授课教师的人数。SELECTCOUNT(DISTINCTTno)FROMTTec对于要将数据进行分组计算的,就要使用到GROUPBY子句。例:统计学生管理数据库中每个系的学生人数。SELECTCOUNT(No)FROMSInfoGROUPBYDepartment要想对分组的结果进行过滤筛选,就要使用HAVING子句。例:查询学生人数超过100人的系有哪些。SELECTDeptmentFROMSInfoGROUPBYDepartmentHAVINGCOUNT(No)>100在有些情况下需要对查询结果进行排序输出,则需要使用ORDERBY子句。例:查询计算机系全体男生的情况,并按年龄升序排列。SELECT*FROMSInfoWHEREDeptment=’计算机’ANDSex=’男’ORDERBYAge2.向表中添加新数据使用INSERT语句可以在现有的表中插入一条新纪录。语法格式如下:  INSERTINTO<表名>[(<列名列表>)]VALUES(值列表)例:将新记录(08990007,张丹晨,电子系,女,18岁)插入到SInfo表中。INSERTINTOSInfoVALUES('08990007','张丹晨','电子系','女',18,)或者为:INSERTINTOSInfo(No,Name,Deptment,Sex,Age)VALUES('08990007','张丹晨','电子系','女',18)3.更新表中数据对于已经存在的记录,如果某些字段值发生了变化,则需要对现有的内容进行修改,可以使用UPDATE语句来实现。语法格式如下:UPDATE<表名>SET<列名=表达式>[,…n][WHERE<更新条件>]例:学号为08990007的学生转入计算机系学习,则相应的学生信息表要修改,实现语句如下:UPDATESInfoSETDeptment=’计算机’WHERENo=’08990007’4.删除表中数据当某些记录不再需要时,可以用DELETE语句将其删除。语法格式如下:DELETE[FROM]<表名>[WHERE<删除条件>例:学号为08990001的学生退学,则应修改学生信息表。DELETEFROMSInfoWHERENo=’08990001’12.2ADO.NET2.0概述ADO.NET对象模型.NETFramework数据访问对象1.Connection对象要访问数据库,需要先建立到数据库的连接,在ADO.NET中,使用Connection对象来连接到指定的数据源。这里以SqlConnection对象为例进行讲解。SqlConnection对象的主要属性和方法如下:ConnectionString属性:获取或设置用于打开sqlsever数据库的字符串。ConnectionTimeout属性:获取尝试建立连接时终止尝试并生成错误之前所等待的时间。State属性:指示SqlConnection的状态。Open表示处于打开状态,close处于关闭状态。Open方法:使用connectionstring所指定的属性设置打开数据库的连接。Close方法:关闭与数据库的连接。如下代码演示了如何创建、打开和关闭与SQLServer数据库的连接。DimstrConnAsStringstrConn=“DataSource=YF154084;InitialCatalog=EAdmin;Integrated&_Security=True;"'指定连接字符串DimconnAsNewSqlConnection(strConn)'使用给出的连接字符串创建connection对象…conn.Open()'通过open方法打开到数据库的连接…conn.Close()'通过close方法关闭到数据库的连接在连接字符串中,DataSource指数据库服务器的名称,InitialCatalog指想要连接的数据库的名称。如想连接到Access数据库,可参考如下代码,Provider用来指定数据提供程序,DataSource用来指定Access数据库文件。DimconnAsOleDbConnection=New&_OleDbConnection("Provider=Miscrosoft.Jet.OLEDB.4.0;"&_"DataSource=c:\EAdmin.mdb")2.Command对象当连接到数据库以后,可以使用Command对象执行命令,并从数据源中返回结果。SqlCommand的主要属性和方法如下:CommandText属性:获取或设置要对数据源执行的Transact-sql语句或存储过程。CommandType属性:获取或设置一个对CommandText属性的解释。当CommandType设置为StoreProcedure时,表示Command对象执行的是一个存储过程,CommandText应设置为对应的存储过程的名称;当CommandType为TableDirect时表示直接从表中取得数据,CommandText应为要访问的表的名称,访问多个表时,表名间用逗号分隔;当CommandType为Text时,表示要执行一个SQL语句,CommandText应为一个可执行的SQL语句。CommandTime属性:获取或设置等待命令执行的时间,默认为30秒。Connection属性:获取或设置此Command使用的Connection。Parameters属性:为存储过程或Transact-SQL设置参数。ExecuteNoQuery方法:对连接执行Transact-SQL语句,并返回受影响的行数。ExecuteReader方法:执行命令并生成SqlDataReader对象,SqlDataReader为数据提供了一个连续的、只读的指针。ExecuteScalar方法:执行查询,并返回结果集中的第一行第一列的值,忽略其他行和列。常用于从数据库中检索一个聚合值。【例12.1】删除EAdmin数据库中SInfo表中指定学号的记录。  首先创建名为DeleteRow的项目。需要用到的控件及其属性设置如表所示。文本框用来接收用户的输入,内容为想要删除记录信息的学生学号,输入后鼠标单击删除按钮,若数据库中存在相应学生的信息,该记录将会被删除,弹出消息框,提示删除成功。若数据库中不存在所输入学号的记录,则弹出消息框提示记录不存在。控件类型属性属性值FormTextDeleterowTextboxNametxtNoButtonNamebtnDeleteText删除ImportsSystem.DataImportsSystem.Data.SqlClientPrivateSubbtnDelete_Click(……)HandlesbtnDelete.ClickDimstrConnAsString="DataSource=YF154084;InitialCatalog=EAdmin;"&_"IntegratedSecurity=True;"'定义连接字符串DimconnAsNewSqlConnection(strConn)'创建sqlserver数据库连接DimstrDelAsString="deletefromSInfowhereno='"&Trim(txtNo.Text)&"'"'定义删除语句DimcommAsNewSqlCommand(strDel,conn)'设置command对象conn.Open()'打开数据库连接If(comm.ExecuteNonQuery())Then'执行Transact-SQL语句MsgBox("记录已删除!")ElseMsgBox("不存在该项纪录!")EndIfconn.Close()'关闭数据库连接EndSub程序执行前SInfo表中记录程序执行后SInfo表中记录3.DataReader(数据读取器)对象使用DataReader对象来检索数据库中前向的、只读的数据流。常用的属性及方法如下。Depth属性:获取表示当前记录的嵌套深度的值。IsClosed属性:返回表示是否关闭数据读取器的布尔值。RecordsAffected属性:获取执行Transact-SQL语句所影响的行数,-1表示执行查询。Close方法:关闭数据读取器对象。GetSchemaTable方法:返回描述数据读取器的结果集模式的DataTable。NextResult方法:将数据读取器移到下一个结果集。Read方法:将数据读取器移到结果集中的下一条记录。【例12.2】使用DataReader读取EAdmin数据库SInfo表中学生的学号、姓名和所在系。在VB.NET中新建名为DataReader的项目,所需控件及其属性如表所示。程序运行后单击“显示”按钮,在列表框中显示所需内容。控件类型属性属性值FormTextDataReaderListboxNamelstSinfoButtonNamebtnShowText显示PrivateSubbtnShow_Click(……)HandlesbtnShow.ClickDimstrConnAsString="DataSource=YF154084;InitialCatalog=EAdmin;IntegratedSecurity=True;"'定义连接字符串DimconnAsNewSqlConnection(strConn)'创建sqlserver数据库连接DimstrSelAsString="selectno,name,deptmentfromSinfo"'定义查询语句DimcommAsNewSqlCommand(strSel,conn)'设置command对象conn.Open()'打开数据库连接DimsReaderAsSqlDataReader=comm.ExecuteReader()'执行command对象设置的查询语句,并将结果集返回给DataReaderDoWhilesReader.Read'向listbox中添加记录lstSinfo.Items.Add(sReader.GetString(0)&“”&_sReader.GetString(1)&""&sReader.GetString(2))LoopsReader.Close()'关闭DataReaderconn.Close()'关闭数据库连接EndSub使用DataReader显示数据库表中记录4.DataAdapter(数据适配器)对象DataAdapter是数据源和DataSet之间的桥梁,可以从数据源检索数据并填充DataSet中的表,也能将在DataSet中所作的更改更新到数据源。DataAdapter使用Connection对象连接到数据源,使用Command对象实现数据检索及更新。常用的属性和方法如下:SelectCommand属性:获取或设置一个Transact-SQL语句或存储过程,用
/
本文档为【VB.NET 程序设计(下)ppt】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索