sqlserver xml 传入对象参数

===================================c#部分=========================================================================

XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<BrokerUser>));
                Stream stream = new MemoryStream();
                xmlSerializer.Serialize(stream, data);
                var xml = new SqlXml(stream);
                ManjayDBEntities entities = new ManjayDBEntities();
                entities.ImportBroker(xml.Value);

========================================sql部分========================================================================

USE [ManjayDB]

GO
/****** Object:  StoredProcedure [dbo].[ImportBroker]    Script Date: 11/11/2014 16:48:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
      
ALTER PROCEDURE [dbo].[ImportBroker] ( @data XML )
AS
    BEGIN      
        DECLARE @handle INT  
        DECLARE @RealName nvarchar(20),  @Mobile varchar(20),@RoleType INT ,@EstateId INT ,  @IsChecked INT  ,@Password varchar(60),@AddTime datetime     
                     
        EXEC sp_xml_preparedocument @handle OUTPUT, @data,
            '<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>'        
        SELECT  *
        INTO    #temp
        FROM    OPENXML(@handle, '/ArrayOfBrokerUser/BrokerUser',2)        
      WITH (    RealName nvarchar(20),  Mobile varchar(20),RoleType INT ,EstateId INT ,  IsChecked INT  ,Password varchar(60)
      )        
        
        EXEC sp_xml_removedocument @handle  
        --申明游标
        Declare Cur Cursor For       
        SELECT  
                #temp.RealName ,
                #temp.Mobile ,
                #temp.RoleType ,
                #temp.EstateId ,
                #temp.IsChecked,
                #temp.Password,
                GETDATE()
        FROM    #temp
        
        Open Cur
            Fetch next From Cur Into
            @RealName ,  @Mobile ,@RoleType ,@EstateId ,  @IsChecked ,@Password ,@AddTime
            While @@fetch_status=0
            Begin
                INSERT  INTO dbo.Broker_BrokerUser
                ( RealName ,
                  UserName ,
                  Mobile ,
                  RoleType ,
                  EstateId ,
                  IsChecked ,
                  Password ,
                  AddTime,
                  Account,
                  Balance,
                  ParentId
                )values
                (@RealName ,@RealName , @Mobile ,@RoleType ,@EstateId ,  @IsChecked ,@Password ,@AddTime,0,0,0)
                
                INSERT  INTO dbo.Manjay_BrokerUserRelateEstate
                ( EstateId ,
                  BrokerUserId ,
                  RoleType ,
                  IsChecked ,
                  IsLocked ,
                  AddTime,
                  Account,
                  Balance,
                  ParentId
                )values
                (@EstateId,@@IDENTITY,@RoleType,@IsChecked,0,@AddTime,0,0,0)
                
                Fetch Next From Cur Into
                @RealName ,  @Mobile ,@RoleType ,@EstateId ,  @IsChecked ,@Password ,@AddTime
            End
            Close Cur
            Deallocate Cur
                             
                      
    END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值