当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > XML Web Service 数据交换

ASP.NET
asp.net Execl的添加,更新操作实现代码
asp.net 生成曲线图实现代码
从外部的js文件中获取ASPX页面的控件ClientID
asp.net 因为数据库正在使用的解决方法
asp.net Repeater 自递增
asp.net 实现防迅雷等下载工具盗链
ASP.NET封装的SQL数据库访问类
asp.net 通过指定IP地址得到当前的网络上的主机的域名
aspx 服务器架设问题解决
ASP.NET Session使用详解
Asp.net 5种页面转向方法
ASP.NET 用户多次登录的解决方法
ASP.NET下母版页和内容页中的事件发生顺序整理
asp.net 程序性能优化的七个方面 (c#(或vb.net)程序改进)
从客户端检测到有潜在危险的Request.Form值的asp.net代码
asp.net CommunityServer中的wwwStatus
在应用程序级别之外使用注册为allowDefinition=''MachineToApplication''的节是错误的
.net开发人员常犯的错误分析小结
ASP.net Substitution 页面缓存而部分不缓存的实现方法
asp.net 生成静态时的过滤viewstate的实现方法

ASP.NET 中的 XML Web Service 数据交换


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 178 ::
收藏到网摘: n/a

XML Web Service 数据交换
客户端调用服务器端的 Web 服务并传递包含数据的 DataSet (ds):
Private Sub Synchronize() Dim username As String = "JohnS" Dim blnSuccess As Boolean ' 使用 XML Web Service 进行同步 Cursor.Current = Cursors.WaitCursor Dim wsFeedback As New wsFeedback.feedback blnSuccess = wsFeedback.InsertFeedback(ds, username)
Cursor.Current = Cursors.DefaultEnd Sub
服务器端的 Web 服务接受 DataSet 并将 XML 直接传递到 SQL Server 2000 存储的过程中,该过程使用 SQLXML(英文)和 OPENXML 解析 XML 并将新数据插入适当的表格。
_Public Function InsertFeedback(ByVal ds As DataSet, ByVal username As String) As Boolean Dim con As New SqlConnection(connectionstring) Dim cmd As New SqlCommand("p_Feedback_i", con) cmd.CommandType = CommandType.StoredProcedure
' 设置参数 Dim prmXML As SqlParameter = cmd.Parameters.Add("@XML", SqlDbType.NText) prmXML.Direction = ParameterDirection.Input prmXML.Value = ds.GetXml
Dim prmUsername As SqlParameter = cmd.Parameters.Add("@Username", SqlDbType.NVarChar) prmUsername.Direction = ParameterDirection.Input prmUsername.Value = username

Try con.Open() cmd.ExecuteNonQuery() Catch ex As Exception ' 处理、记录并重掷错误 Throw ex
Finally con.Close() End Try
Return True
End Function
The stored procedure inserts the new data:
CREATE PROCEDURE p_Feedback_i @XML ntext, @Username nvarchar(50)
AS
SET NOCOUNT ON
DECLARE @iDoc integerDECLARE @Error integer
/* Create XML document. */EXEC sp_xml_preparedocument @iDoc OUTPUT, @XML
/* Insert new records */INSERT INTO Feedback ( FeedbackID, PlantSection, Part, DefectScope, ScopeID, DefectType, RichInk, Username )SELECT ID, PlantSection, Part, DefectScope, ScopeID, DefectType, RichInk, @UsernameFROM OPENXML (@iDoc, '/DataSet/Feedback',2) WITH ( ID uniqueidentifier, PlantSection int, Part int, DefectScope int, ScopeID nvarchar(50), DefectType int, RichInk nvarchar(50) )
SELECT @Error = @@ERRORIF (@Error <> 0)BEGIN GOTO ErrorhandlerEND
/* Remove the XML document*/EXEC sp_xml_removedocument @iDoc
RETURN
Errorhandler:
IF NOT @iDoc IS NULL EXEC sp_xml_removedocument @iDoc
RAISERROR (@Error,16,1)
RETURN