-
vb.net教程之在Visual Basic .Net调用Web Service提供的服
在Visual Basic .Net调用Web Service提供的服务:
当Web Service已经处于对外提供服务状态,Visual Basic .Net就可以通过HTTP"调用"来使用这些服务了。当然前提是要了解Web Service对外提供服务所对应的URL,当了解到Web Service对应的URL后,Visual Basic .Net就像是使用本地的类库一样使用Web Service中提供的各种功能。所以有些人说,Web Service从实质上说,就是通过HTTP调用远程组件的一种方式。在Visual Basic .Net具体实现加入Web Service可参阅下面步骤中的第七步。
在下面介绍的这个数据库应用程序是通过使用上面的Web Service中提供的"Binding"服务,对程序中DataGrid组件实现数据绑定,提供使用Web Service中提供的"Update"服务,通过程序中的DataGrid来修改数据库。下面就是Visual Basic .Net中使用Web Service提供服务来编写数据库应用程序的具体步骤,:
1. 启动Visual Studio .Net。
2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。
3. 将【项目类型】设置为【Visual Basic项目】。
4. 将【模板】设置为【Windows应用程序】。
5. 在【名称】文本框中输入【TestWebService】。
6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"中就产生了名称为"TestWebService"文件夹,里面存放的就是TestWebService项目的所有文件。
7. 选择【解决方案资源管理器】|【引用】后,单击鼠标右键,在弹出的菜单中选择【添加Web 引用】,在弹出的【添加Web引用】对话框中的【地址】文本框中输入"http://localhost/ UpdateDataWebService /Service1.asmx "后,单击回车键后,可得图03所示界面。单击图03中【添加引用】按钮,则在【TestWebService】项目中加入了Web引用。请注意"http://localhost/ UpdateDataWebService /Service1.asmx "就是上面完成的Web Service对外提供服务的URL地址,具体可参阅图02所示:
8. 从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:
一个DataGrid组件。
二个Button组件,,分别是Button1至Button2,并在这二个Button组件拖入Form1的设计窗体后,分别双击它们,则系统会在Form1.vb文件分别产生这二个组件的Click事件对应的处理代码。
9. 按照表01所示调整窗体中各组件属性的数值:
表01:【TestWebService】项目中组件的主要属性及其对应数值
在调整完组件属性值后,再按照图04所示调整组件的位置和排列顺序:
10. 把Visual Studio .Net的当前窗口切换到Form1.vb的代码编辑窗口,并用下列代码替换Form1.vb中的Button1的Click事件对应的处理代码,下列代码功能是使用Web Service中提供的"Binding"服务对DataGrid组件实现数据绑定:
11. 用下列代码替换Form1.vb中的Button2的Click事件对应的处理代码,下列代码功能是使用Web Service中提供的"Update"服务实现通过DataGrid来修改数据库数据:
12. 至此, 【TestWebService】项目的全部工作就完成了,调用Web Service是不是很简单。此时单击快捷键F5运行程序后。单击程序中的【绑定】按钮就会对程序中的DataGrid组件实现数据绑定,单击程序中的【修改】按钮,则程序会根据DataGrid中的内容来更新数据库,图05就是【TestWebService】的运行界面:
13. Form1.vb的代码清单如下:
五.总结:
本文介绍了Web Service在目前大行其道的原因,并结合二个示例介绍Visual Basic .Net在Web Service的实现和调用上的强大功能,正如本文前面所说,Visual Studio .Net的出现使得web Service的这项原先繁杂的工作变得异常的简单,因为Visual Basic .Net已经替代我们作了这些描述性的、基础的底层工作,以至于你不需要了解为什么,只需要知道你要实现什么就可以编写、调用Web Service了。 在实现Web Service在数据库方面应用所显示
Web Service虽然以其强大功能和其优越性正在受到越来越多人的青睐,但也不可以回避它的缺点,譬如其速度慢就使得我几乎无法忍受。等等这样的原因也决定了Web Service并不适用于所有的环境。如单机运行程序和局域网上的同构应用程序等就尽量不采用Web Service方式。本文只是展示了Visual Studio .Net在Web Service上的初步用途,至于更复杂的使用、调用方法只能在后续的文章中介绍了,感兴趣的朋友,我们下一文再见!
部署方法:
比如原来的WebService 所在位置为 C:\Interpub\wwwroot\WebService1
名字为 myService.asmx
将这个文件夹拷贝到新机器中,假如为新机器的D:\WebService1
在新机器IIS里建立虚拟目录,取名字为MyWebService,然后将路径选择为 D:\WebService1
这时就可以在浏览器中 http://localhost/MyWebService/myService.asmx
来访问WebService了,如果要在其他机器上访问,将localhost改为新机器的IP地址即可
当Web Service已经处于对外提供服务状态,Visual Basic .Net就可以通过HTTP"调用"来使用这些服务了。当然前提是要了解Web Service对外提供服务所对应的URL,当了解到Web Service对应的URL后,Visual Basic .Net就像是使用本地的类库一样使用Web Service中提供的各种功能。所以有些人说,Web Service从实质上说,就是通过HTTP调用远程组件的一种方式。在Visual Basic .Net具体实现加入Web Service可参阅下面步骤中的第七步。
在下面介绍的这个数据库应用程序是通过使用上面的Web Service中提供的"Binding"服务,对程序中DataGrid组件实现数据绑定,提供使用Web Service中提供的"Update"服务,通过程序中的DataGrid来修改数据库。下面就是Visual Basic .Net中使用Web Service提供服务来编写数据库应用程序的具体步骤,:
1. 启动Visual Studio .Net。
2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。
3. 将【项目类型】设置为【Visual Basic项目】。
4. 将【模板】设置为【Windows应用程序】。
5. 在【名称】文本框中输入【TestWebService】。
6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"中就产生了名称为"TestWebService"文件夹,里面存放的就是TestWebService项目的所有文件。
7. 选择【解决方案资源管理器】|【引用】后,单击鼠标右键,在弹出的菜单中选择【添加Web 引用】,在弹出的【添加Web引用】对话框中的【地址】文本框中输入"http://localhost/ UpdateDataWebService /Service1.asmx "后,单击回车键后,可得图03所示界面。单击图03中【添加引用】按钮,则在【TestWebService】项目中加入了Web引用。请注意"http://localhost/ UpdateDataWebService /Service1.asmx "就是上面完成的Web Service对外提供服务的URL地址,具体可参阅图02所示:
图03:在【TestWebService】添加Web Service提供的服务 |
8. 从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:
一个DataGrid组件。
二个Button组件,,分别是Button1至Button2,并在这二个Button组件拖入Form1的设计窗体后,分别双击它们,则系统会在Form1.vb文件分别产生这二个组件的Click事件对应的处理代码。
9. 按照表01所示调整窗体中各组件属性的数值:
组件类型 | 组件名称 | 属性 | 设置结果 |
Form | Form1 | Text | 测试Web Service |
Form1 | MaximizeBox | False | |
Form1 | FormBorderStyle | FixedSingle | |
Button | Button1 | Text | 绑定 |
Button1 | FlatStyle | Flat | |
Button2 | Text | 修改 | |
Button2 | FlatStyle | Flat |
在调整完组件属性值后,再按照图04所示调整组件的位置和排列顺序:
图04:【TestWebService】项目中组件排列位置和顺序 |
10. 把Visual Studio .Net的当前窗口切换到Form1.vb的代码编辑窗口,并用下列代码替换Form1.vb中的Button1的Click事件对应的处理代码,下列代码功能是使用Web Service中提供的"Binding"服务对DataGrid组件实现数据绑定:
Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click Dim MyService As New localhost.Service1 ( ) DataGrid1.DataSource = MyService.Binding ( ) DataGrid1.DataMember = "Cust" End Sub |
11. 用下列代码替换Form1.vb中的Button2的Click事件对应的处理代码,下列代码功能是使用Web Service中提供的"Update"服务实现通过DataGrid来修改数据库数据:
Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click Dim MyService As New localhost.Service1 ( ) Dim ds As DataSet = DataGrid1.DataSource Dim dsChanges As DataSet = ds.GetChanges ( ) If Not ( dsChanges Is Nothing ) Then ds.Merge ( MyService.Update ( dsChanges ) , True ) End If End Sub |
12. 至此, 【TestWebService】项目的全部工作就完成了,调用Web Service是不是很简单。此时单击快捷键F5运行程序后。单击程序中的【绑定】按钮就会对程序中的DataGrid组件实现数据绑定,单击程序中的【修改】按钮,则程序会根据DataGrid中的内容来更新数据库,图05就是【TestWebService】的运行界面:
图05:【TestWebService】的运行界面 |
13. Form1.vb的代码清单如下:
Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 " Public Sub New ( ) MyBase.New ( ) '该调用是 Windows 窗体设计器所必需的。 InitializeComponent ( ) '在 InitializeComponent ( ) 调用之后添加任何初始化 End Sub '窗体重写处置以清理组件列表。 Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean ) If disposing Then If Not ( components Is Nothing ) Then components.Dispose ( ) End If End If MyBase.Dispose ( disposing ) End Sub 'Windows 窗体设计器所必需的 Private components As System.ComponentModel.IContainer '注意:以下过程是 Windows 窗体设计器所必需的 '可以使用 Windows 窗体设计器修改此过程。 '不要使用代码编辑器修改它。 Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid <System.Diagnostics.DebuggerStepThrough ( ) > Private Sub InitializeComponent ( ) Me.Button1 = New System.Windows.Forms.Button ( ) Me.Button2 = New System.Windows.Forms.Button ( ) Me.DataGrid1 = New System.Windows.Forms.DataGrid ( ) CType ( Me.DataGrid1 , System.ComponentModel.ISupportInitialize ) .BeginInit ( ) Me.SuspendLayout ( ) Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button1.Location = New System.Drawing.Point ( 56 , 216 ) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size ( 75 , 32 ) Me.Button1.TabIndex = 0 Me.Button1.Text = "绑定" Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button2.Location = New System.Drawing.Point ( 168 , 216 ) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size ( 75 , 32 ) Me.Button2.TabIndex = 1 Me.Button2.Text = "修改" Me.DataGrid1.DataMember = "" Me.DataGrid1.Dock = System.Windows.Forms.DockStyle.Top Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.DataGrid1.Name = "DataGrid1" Me.DataGrid1.Size = New System.Drawing.Size ( 292 , 192 ) Me.DataGrid1.TabIndex = 2 Me.AutoScaleBaseSize = New System.Drawing.Size ( 6 , 14 ) Me.ClientSize = New System.Drawing.Size ( 292 , 273 ) Me.Controls.AddRange ( New System.Windows.Forms.Control ( ) {Me.DataGrid1 , Me.Button2 , Me.Button1} ) Me.Name = "Form1" Me.Text = "测试Web Service" CType ( Me.DataGrid1 , System.ComponentModel.ISupportInitialize ) .EndInit ( ) Me.ResumeLayout ( False ) End Sub #End Region Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click Dim MyService As New localhost.Service1 ( ) DataGrid1.DataSource = MyService.Binding ( ) DataGrid1.DataMember = "Cust" End Sub Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click Dim MyService As New localhost.Service1 ( ) Dim ds As DataSet = DataGrid1.DataSource Dim dsChanges As DataSet = ds.GetChanges ( ) If Not ( dsChanges Is Nothing ) Then ds.Merge ( MyService.Update ( dsChanges ) , True ) End If End Sub End Class |
本文介绍了Web Service在目前大行其道的原因,并结合二个示例介绍Visual Basic .Net在Web Service的实现和调用上的强大功能,正如本文前面所说,Visual Studio .Net的出现使得web Service的这项原先繁杂的工作变得异常的简单,因为Visual Basic .Net已经替代我们作了这些描述性的、基础的底层工作,以至于你不需要了解为什么,只需要知道你要实现什么就可以编写、调用Web Service了。 在实现Web Service在数据库方面应用所显示
Web Service虽然以其强大功能和其优越性正在受到越来越多人的青睐,但也不可以回避它的缺点,譬如其速度慢就使得我几乎无法忍受。等等这样的原因也决定了Web Service并不适用于所有的环境。如单机运行程序和局域网上的同构应用程序等就尽量不采用Web Service方式。本文只是展示了Visual Studio .Net在Web Service上的初步用途,至于更复杂的使用、调用方法只能在后续的文章中介绍了,感兴趣的朋友,我们下一文再见!
部署方法:
比如原来的WebService 所在位置为 C:\Interpub\wwwroot\WebService1
名字为 myService.asmx
将这个文件夹拷贝到新机器中,假如为新机器的D:\WebService1
在新机器IIS里建立虚拟目录,取名字为MyWebService,然后将路径选择为 D:\WebService1
这时就可以在浏览器中 http://localhost/MyWebService/myService.asmx
来访问WebService了,如果要在其他机器上访问,将localhost改为新机器的IP地址即可
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比