VB6.0调用C#中WebService的方法
(2011-11-07 00:00:00)
标签:
webservice调用webservicevb6.0远程调用跨平台服务it |
分类: 技术博论 |
一、通过WebService实现简单数据的调用
需下载msSoapToolkit20.exe或者msSoapToolkit30.exe
添加引用:Microsoft Soap Type Library
位置:”C:\Program Files\Common Files\MSSoap\Binaries\
MSSOAP1.dll”
示例:
添加一个button控件Command1。
private sub command1_click()
soapApp.mssoapinit "http://localhost:2239/WebSoap.asmx?WSDL"
msgbox soapApp.HelloWorld()
end sub
二、通过WebService实现DataSet的调用
配置方式同方法一中。
VB端代码如下:
private sub command2_click()
Dim myXmlHttp As New XMLHTTP
Dim myXmlDoc As New DOMDocument
Dim myXmlNode As IXMLDOMNode
Dim rootElemnet As IXMLDOMNode
Dim adoStream As ADODB.Stream
Dim txt, myArray
Dim filename As String
myXmlHttp.Open "POST", "http://192.168.1.104/WebSoap.asmx/QueryList", False
myXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
myXmlHttp.send "ExceptOrderSn=1"
Do While myXmlHttp.readyState <> 4
DoEvents
Loop
myXmlDoc.Load myXmlHttp.responseXML
If myXmlDoc.documentElement Is Nothing Then
MsgBox "网络连接异常,请检查数据同步网址是否正确!", vbInformation
Else
Set rootElemnet = myXmlDoc.documentElement
For Each myXmlNode In rootElemnet.childNodes
txt = myXmlNode.Text
txt = Replace(txt, " ", ",")
myArray = Split(txt, ",")
msgbox myArray(0)
Next
On Error Resume Next
Kill filename
MsgBox "数据同步失败!", vbInformation, "信息提示"
End if
End Sub
Asp.net端源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Services;
using System.Web.UI.WebControls;
using System.Text;
using System.Data;
using System.Xml;
/// <summary>
///WebSoap 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebSoap : System.Web.Services.WebService
{
[WebMethod(Description="直接返回DataSet对象")]}
public DataSet GetDataSet()
{
string sql = "select * from Customers";
Database db = DatabaseFactory.CreateDatabase();
DataSet ds = db.ExecuteDataSet(CommandType.Text,sql);
return ds;
}
本文参考:http://blog.sina.com.cn/s/blog_48b06b330100hx18.html