• c#表类型参数批量导入与批量更新


    c#

     if (classify.ListL.Count > 0)
                                    {
                                        classify.ListL.ForEach(w =>
                                        {
                                            w.ClassifyCode = classify.ClassifyCode;
                                            w.UseCode = (dt1.Rows[0]["UseCode"].ToString());
    
                                        });
    
                                        using (var conn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.AppSettings["DbHelperConnectionString"].Trim()))
                                        {
                                            conn.Open();
                                            //// Invokes the stored procedure.
                                            using (cmd = new SqlCommand("MaterialManage_BatchUseSaveSub", conn))
                                            {
                                                cmd.CommandType = CommandType.StoredProcedure;
                                                cmd.Parameters.Add(new SqlParameter("@ItemTable", SqlDbType.Structured) { Value = Tool.ListToDataTable(classify.ListL) });
                                                cmd.ExecuteNonQuery();
                                            }
                                        }
                                    }
    

      sqlprocedure insert

    USE [Preschool_ABC]
    GO
    /****** Object:  StoredProcedure [dbo].[MaterialManage_BatchUseSaveSub]    Script Date: 2019/2/27 9:09:56 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[MaterialManage_BatchUseSaveSub]
    (
    
    		 
             @ItemTable MaterialManage_BatchUse_Item_BatchInsert READONLY
    	
    
    )
    AS
    	SET XACT_ABORT ON
    	SET NOCOUNT ON 	
    	SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
    	
    	DECLARE @intTranCount INT 
    	SET @intTranCount=@@TranCount
    	IF @intTranCount<> 0  SAVE TRANSACTION Savepoint ELSE BEGIN TRANSACTION 
    
    	DECLARE @TemplateCode UNIQUEIDENTIFIER
    
    	BEGIN
    		
    		INSERT INTO dbo.MaterialManage_BatchUse_Item
    		        (  
    		          UseCode ,
    		          ClassifyCode ,
    		          ListCode ,
    		          ReserveNum ,
    		          ApplyNum
    		        )
    		SELECT UseCode = CAST(UseCode AS UNIQUEIDENTIFIER) , ClassifyCode = CAST(ClassifyCode AS UNIQUEIDENTIFIER) , CAST(ListCode AS UNIQUEIDENTIFIER), ReserveNum, ApplyNum FROM @ItemTable
    		
    		
    	END
    
    --完成--
    	IF @intTranCount<>@@TranCount COMMIT TRANSACTION		 
    	RETURN
    	
    ErrHandle:
    	 IF @intTranCount=@@TranCount 
    	BEGIN
    		ROLLBACK TRANSACTION Savepoint 
    		RETURN
    	END
    	ELSE
    	BEGIN
    		ROLLBACK TRANSACTION 
    		RETURN
    	END
    

      

    update

    CREATE PROCEDURE [MCU].[USP_UpdatePayrollCycle]
    (
        @PayrollCycles MCU.PayrollCycleType READONLY,
        @TypeOfDate NVARCHAR(7)
    )
    AS
    BEGIN
        SET NOCOUNT ON
        --declare an table
        DECLARE @temp AS MCU.PayrollCycleType
       
        --Update the PayrollCycle
        IF(@TypeOfDate='Payroll')
             BEGIN 
                UPDATE MCU.PayrollCycle 
                SET 
                    PayrollDate=t.PayrollDate
                FROM
                    @temp t
                    WHERE  MCU.PayrollCycle.[Year]=t.[Year] AND MCU.PayrollCycle.[Month]=t.[Month]
             END
                 
        IF(@TypeOfDate='Cut-off')
            BEGIN
                UPDATE MCU.PayrollCycle
                SET
                    CutoffDate=t.CutOffDate
                FROM @temp t
                       WHERE  MCU.PayrollCycle.[Year]=t.[Year] AND MCU.PayrollCycle.[Month]=t.[Month]
            END                   
    END
    
    GO
    

      表值类型

    USE [Preschool_ABC]
    GO
    
    /****** Object:  UserDefinedTableType [dbo].[MaterialManage_BatchUse_Item_BatchInsert]    Script Date: 2019/2/27 9:21:11 ******/
    CREATE TYPE [dbo].[MaterialManage_BatchUse_Item_BatchInsert] AS TABLE(
    	[UseCode] [VARCHAR](50) NOT NULL,
    	[ClassifyCode] [VARCHAR](50) NOT NULL,
    	[ListCode] [VARCHAR](50) NOT NULL,
    	[ReserveNum] [INT] NOT NULL,
    	[ApplyNum] [INT] NOT NULL
    )
    GO
    

      

  • 相关阅读:
    Dart语言概览
    Flutter开发环境配置(MAC版)
    Jetpack系列:Paging组件帮你解决分页加载实现的痛苦
    Jetpack系列:应用内导航的正确使用方法
    Jetpack系列:LiveData入门级使用方法
    在Android平台使用SNPE应链接libc++库
    Android binder流程简图
    使用Visual Studio Code进行远程开发
    用clock()函数计时的坑
    OpenCV Mat格式存储YUV图像
  • 原文地址:https://www.cnblogs.com/jiamengyang/p/10441946.html
Copyright © 2020-2023  润新知