写给痛苦于新旧语言交互中的新人们,vb6调用vs2005的webservice数据(方法一)
2008-04-24 20:47
537 查看
一.VB6 客户端的程序,读取每个节点的信息
------------------------------------------------
Private Sub Cmd_RW_XMLstream_Click()
'///
'以下是我搜索中看到的言语
'///
'实际上SOAP可以实现基本类型的网络传输,但是SOAP提供XML格式内容的传输,所以要先进行对象的序列化,成XML;再通过SOAP传输,到界面层再由XML反序列化为对象,或者就直接显示在控件里
' 1.通过VB(或者其它开发平台也可能存在这个情况的)访问web services方法返回的数据集的速度慢,怎么优化提高呢?
' 2.在VB6.0端把得到的xml数据,转换成其本地可以操作的数据集的方法。这里,要提示一下,在vb6.0中把由web services方法返回的xml数据形成文件的格式与由vb6.0直接用ADO访问数据库后得到数据集形成的xml文件的格式是不同的!!!
Dim AdoRsTool As New ADODB.Recordset
Dim wOk As Boolean
Dim wXML As DOMDocument40
Set wXML = New DOMDocument40
Dim wNode As IXMLDOMNode
Dim wNodeList As IXMLDOMNodeList
'加载XML到 xml文档对象
wXML.async = False
Dim str As String
Dim soapAddWords As New SoapClient30
Call soapAddWords.MSSoapInit("http://localhost:4006/WebSite_WebServiceSample/Service.asmx?wsdl")
' str = soapAddWords.HelloWorld1()
' MsgBox str
If Err.Number <> 0 Then
MsgBox soapAddWords.FaultString, vbExclamation
End If
Dim strAll As String
strAll = ""
strAll = soapAddWords.strGetAllNewWords()
MsgBox strAll
wOk = wXML.LoadXml(strAll)
' Dim strtest As String
'
' strtest = ""
If wOk Then
Set wNodeList = wXML.documentElement.selectNodes("//wordslist")
' MsgBox wNodeList.length
' Set wNodeList = wNode.selectNodes("Words")
For Each wNode In wNodeList
MsgBox wNode.Text
Next wNode
' strtest = wXML.documentElement.selectSingleNode("wordslist").Text
' MsgBox strtest
Else
MsgBox "读完了"
End If
MsgBox "看看是否写了"
End Sub
二.C#的webservice的方法 传输是字符串,但是是XML格式的字符串。
[WebMethod]
public string HelloWorld1() ...{
return "Hello World";
}
[WebMethod(Description = "以string传输")]
public string strGetAllNewWords()
...{
string StrConn = System.Configuration.ConfigurationManager.AppSettings["SQLConnectionString"].ToString();
SqlDataAdapter adapter = new SqlDataAdapter("select * from wordslist order by word FOR XML AUTO,root('Words'),elements", StrConn);
SqlCommandBuilder sqlcommd = new SqlCommandBuilder(adapter);
DataSet DsWords = new DataSet();
sqlcommd.DataAdapter.Fill(DsWords, "wordslist");
MemoryStream memStrm = new MemoryStream();
StreamReader strmRead = new StreamReader(memStrm);
StreamWriter strmWrite = new StreamWriter(memStrm);
XmlDataDocument xDataDoc = new XmlDataDocument();
DsWords.WriteXml(strmWrite , XmlWriteMode.IgnoreSchema);
memStrm.Seek(0, SeekOrigin.Begin);
xDataDoc.Load(strmRead);
string strAll = "";
XmlNode xmlNodeR = xDataDoc.SelectSingleNode("NewDataSet");
strAll = xmlNodeR.InnerText.ToString();
return strAll;
}
-------------------------------------------------------------------------------------------
'//xml文件
------------------------------------------------------------------------------
<Words>
<aspnetdb.dbo.WordsList>
<id>24</id>
<Word>怎么可能</Word>
<WordExplain>怎么可能
new
help
select
delect</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>2</id>
<userid>13</userid>
<Word>english</Word>
<WordExplain>englishpeople</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>25</id>
<Word>英语 </Word>
<WordExplain>英语 </WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>4</id>
<userid>aa</userid>
<Word>basfsd</Word>
<WordExplain>bb所发生</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>5</id>
<userid>aa</userid>
<Word>casfsd</Word>
<WordExplain>cc</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>7</id>
<userid>aa</userid>
<Word>easfsd</Word>
<WordExplain>ee</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>8</id>
<userid>aa</userid>
<Word>fasfsd</Word>
<WordExplain>ff</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>10</id>
<userid>aa1</userid>
<Word>hasfsd1</Word>
<WordExplain>hh</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>11</id>
<userid>aa1</userid>
<Word>iasfsd1</Word>
<WordExplain>ii</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>12</id>
<userid>aa1</userid>
<Word>jasfsd1</Word>
<WordExplain>jjj</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>13</id>
<userid>aa1</userid>
<Word>kasfsd1</Word>
<WordExplain>kkk</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>31</id>
<Word>looklook</Word>
<WordExplain>look</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>23</id>
<Word>看看</Word>
<WordExplain>看看</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>32</id>
<Word>look</Word>
<WordExplain>lookmehahahaaaa</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>18</id>
<Word> 强</Word>
<WordExplain> 强</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>19</id>
<Word>new</Word>
<WordExplain>new
help
select
delect</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>27</id>
<Word>add</Word>
<WordExplain>addsamelefadfsdfsd更新</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>26</id>
<Word>应该看看</Word>
<WordExplain>应该看看呵呵</WordExplain>
</aspnetdb.dbo.WordsList>
</Words>
鄙人真是苦恼了两天才想出这种下策。
如果有人有更好的办法好希望你不於余力的帮助我这菜鸟一下。
真诚希望你的指点。
------------------------------------------------
Private Sub Cmd_RW_XMLstream_Click()
'///
'以下是我搜索中看到的言语
'///
'实际上SOAP可以实现基本类型的网络传输,但是SOAP提供XML格式内容的传输,所以要先进行对象的序列化,成XML;再通过SOAP传输,到界面层再由XML反序列化为对象,或者就直接显示在控件里
' 1.通过VB(或者其它开发平台也可能存在这个情况的)访问web services方法返回的数据集的速度慢,怎么优化提高呢?
' 2.在VB6.0端把得到的xml数据,转换成其本地可以操作的数据集的方法。这里,要提示一下,在vb6.0中把由web services方法返回的xml数据形成文件的格式与由vb6.0直接用ADO访问数据库后得到数据集形成的xml文件的格式是不同的!!!
Dim AdoRsTool As New ADODB.Recordset
Dim wOk As Boolean
Dim wXML As DOMDocument40
Set wXML = New DOMDocument40
Dim wNode As IXMLDOMNode
Dim wNodeList As IXMLDOMNodeList
'加载XML到 xml文档对象
wXML.async = False
Dim str As String
Dim soapAddWords As New SoapClient30
Call soapAddWords.MSSoapInit("http://localhost:4006/WebSite_WebServiceSample/Service.asmx?wsdl")
' str = soapAddWords.HelloWorld1()
' MsgBox str
If Err.Number <> 0 Then
MsgBox soapAddWords.FaultString, vbExclamation
End If
Dim strAll As String
strAll = ""
strAll = soapAddWords.strGetAllNewWords()
MsgBox strAll
wOk = wXML.LoadXml(strAll)
' Dim strtest As String
'
' strtest = ""
If wOk Then
Set wNodeList = wXML.documentElement.selectNodes("//wordslist")
' MsgBox wNodeList.length
' Set wNodeList = wNode.selectNodes("Words")
For Each wNode In wNodeList
MsgBox wNode.Text
Next wNode
' strtest = wXML.documentElement.selectSingleNode("wordslist").Text
' MsgBox strtest
Else
MsgBox "读完了"
End If
MsgBox "看看是否写了"
End Sub
二.C#的webservice的方法 传输是字符串,但是是XML格式的字符串。
[WebMethod]
public string HelloWorld1() ...{
return "Hello World";
}
[WebMethod(Description = "以string传输")]
public string strGetAllNewWords()
...{
string StrConn = System.Configuration.ConfigurationManager.AppSettings["SQLConnectionString"].ToString();
SqlDataAdapter adapter = new SqlDataAdapter("select * from wordslist order by word FOR XML AUTO,root('Words'),elements", StrConn);
SqlCommandBuilder sqlcommd = new SqlCommandBuilder(adapter);
DataSet DsWords = new DataSet();
sqlcommd.DataAdapter.Fill(DsWords, "wordslist");
MemoryStream memStrm = new MemoryStream();
StreamReader strmRead = new StreamReader(memStrm);
StreamWriter strmWrite = new StreamWriter(memStrm);
XmlDataDocument xDataDoc = new XmlDataDocument();
DsWords.WriteXml(strmWrite , XmlWriteMode.IgnoreSchema);
memStrm.Seek(0, SeekOrigin.Begin);
xDataDoc.Load(strmRead);
string strAll = "";
XmlNode xmlNodeR = xDataDoc.SelectSingleNode("NewDataSet");
strAll = xmlNodeR.InnerText.ToString();
return strAll;
}
-------------------------------------------------------------------------------------------
'//xml文件
------------------------------------------------------------------------------
<Words>
<aspnetdb.dbo.WordsList>
<id>24</id>
<Word>怎么可能</Word>
<WordExplain>怎么可能
new
help
select
delect</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>2</id>
<userid>13</userid>
<Word>english</Word>
<WordExplain>englishpeople</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>25</id>
<Word>英语 </Word>
<WordExplain>英语 </WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>4</id>
<userid>aa</userid>
<Word>basfsd</Word>
<WordExplain>bb所发生</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>5</id>
<userid>aa</userid>
<Word>casfsd</Word>
<WordExplain>cc</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>7</id>
<userid>aa</userid>
<Word>easfsd</Word>
<WordExplain>ee</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>8</id>
<userid>aa</userid>
<Word>fasfsd</Word>
<WordExplain>ff</WordExplain>
<LearnType>2</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>10</id>
<userid>aa1</userid>
<Word>hasfsd1</Word>
<WordExplain>hh</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>11</id>
<userid>aa1</userid>
<Word>iasfsd1</Word>
<WordExplain>ii</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>12</id>
<userid>aa1</userid>
<Word>jasfsd1</Word>
<WordExplain>jjj</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>13</id>
<userid>aa1</userid>
<Word>kasfsd1</Word>
<WordExplain>kkk</WordExplain>
<LearnType>1</LearnType>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>31</id>
<Word>looklook</Word>
<WordExplain>look</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>23</id>
<Word>看看</Word>
<WordExplain>看看</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>32</id>
<Word>look</Word>
<WordExplain>lookmehahahaaaa</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>18</id>
<Word> 强</Word>
<WordExplain> 强</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>19</id>
<Word>new</Word>
<WordExplain>new
help
select
delect</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>27</id>
<Word>add</Word>
<WordExplain>addsamelefadfsdfsd更新</WordExplain>
</aspnetdb.dbo.WordsList>
<aspnetdb.dbo.WordsList>
<id>26</id>
<Word>应该看看</Word>
<WordExplain>应该看看呵呵</WordExplain>
</aspnetdb.dbo.WordsList>
</Words>
鄙人真是苦恼了两天才想出这种下策。
如果有人有更好的办法好希望你不於余力的帮助我这菜鸟一下。
真诚希望你的指点。
相关文章推荐
- android客户端与服务器交互数据(基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合)
- 关于VS2005 调用WebService返回发送请求数据失败问题
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- PHP calss类与extends继承、通过调用类的方法与表单数据进行交互
- 多种方式实现JS调用后台方法进行数据交互
- excel宏调用webservice使用存储过程同步excel数据的方法
- Jquery Ajax学习实例3-向WebService发出请求,调用方法返回数据
- html5-websocket基于远程方法调用的数据交互实现
- 多种方式实现JS调用后台方法进行数据交互
- 定时调用WebService方法同步数据
- jQuery Ajax 调用 WebService 返回数据表(DataTable)的方法
- android之通过webview实现与js方法相互调用,数据交互
- 在脚本语言中调用WebService的方法
- Android基于SOAP标准调用Webservice实现数据交互
- JS调用后台方法进行数据交互
- android 带header调用webservice接口,与.net交互,xml传输数据
- 非.NET语言调用.NET XML Web Services返回的数据集合的两个方法
- 非.NET语言调用.NET XML Web Services返回的数据集合的两个方法
- 非.NET语言调用.NET XML Web Services返回的数据集合的两个方法