xml是什么入参格式 存储过程_SQL Server 存储过程解析XML传参

1、定义存储过程

-- =============================================

-- Author:

-- Create date:

-- Description:

-- =============================================

CREATE PROCEDURE [dbo].[UpdateHDWRSUMSStatus]

-- Add the parameters for the stored procedure here

-- = ,

-- =

@xml xml

AS

BEGIN

-- SET NOCOUNT ON added to prevent extra result sets from

-- interfering with SELECT statements.

SET NOCOUNT ON;

-- Insert statements for procedure here

-- SELECT ,

DECLARE @xmlHandle int

EXEC sp_xml_preparedocument @xmlHandle OUTPUT, @xml

Update hdwrsums

Set updatedate = getdate(),

articleid = modified.articleid

from (

SELECT *

FROM OPENXML (@xmlHandle, '/Root/Record',1)

WITH (PROTSENO varchar(34),

LOANSQNO varchar(3),

articleid int) ) as modified

Where hdwrsums.PROTSENO = modified.PROTSENO and hdwrsums.LOANSQNO = modified.LOANSQNO

EXEC sp_xml_removedocument @xmlHandle

RETURN

END

2、.NET调用存储过程

public static void ToUpdateHDWRSUMSStatus(string xmlstr)

{

using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings["DBConnectionString"].ToString()))

{

connection.Open();

System.Data.SqlClient.SqlTransaction trans = connection.BeginTransaction();

System.Data.SqlClient.SqlCommand testcmd = new System.Data.SqlClient.SqlCommand();

testcmd.Connection = connection;

testcmd.Transaction = trans;

try

{

testcmd.CommandType = CommandType.StoredProcedure;

testcmd.CommandText = "UpdateHDWRSUMSStatus";

testcmd.Parameters.Add("@xml", SqlDbType.VarChar, -1).Value = xmlstr;

testcmd.ExecuteNonQuery();

trans.Commit();

}

catch (Exception exception)

{

trans.Rollback();

throw exception;

}

finally

{

connection.Close();

}

}

}

3、xml格式如下

>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值