zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    Enable mod_rewrite in apache2.2
    静态注册BroadcastReceiver内部类
    Install MySQL Server 5 on Ubuntu
    Install PHP and Apache
    Android BroadcastReceiver应用详解
    C 简易贪吃蛇的编写
    MyBatis学习存档(1)——入门
    MyBatis学习存档(2)——核心配置文件
    Maven学习存档(2)——settings.xml配置
    Java中的float、double计算精度问题
  • 原文地址:https://www.cnblogs.com/zoood/p/4914616.html
Copyright © 2011-2022 走看看