• Sql 解析XML 解决方案参考


    1、定义存储过程

    -- =============================================
    -- Author: <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description: <Description,,>
    -- =============================================
    CREATE PROCEDURE [dbo].[UpdateHDWRSUMSStatus]
    -- Add the parameters for the stored procedure here
    --<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
    --<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
    @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 <@Param1, sysname, @p1>, <@Param2, sysname, @p2>

    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格式如下

    <Root>
    <Record PROTSENO="PROTSENO" LOANSQNO="LOANSQNO" articleid="articleid">
    </Record>>
    </Root>

  • 相关阅读:
    北京东城区社保转出业务个人办理图解流程,需要的朋友可以参考
    微信自定义菜单代码实现
    那你就是不对称加密了
    数字签名和数字认证
    微信认证开发教程
    Eclipse配置Maven
    php随笔
    让SAE下的wordpress支持文件上传
    HTTP Header 详解
    浅谈JS DDoS攻击原理与防御
  • 原文地址:https://www.cnblogs.com/zoood/p/4914616.html
Copyright © 2020-2023  润新知