• sql 通过存储过程和自定义类型批量新增数据


    1,建立存储过程

    create PROCEDURE [dbo].[p_Company_Insert]
    @CompanyCollection [CompanyTableType] READONLY
    AS
    INSERT INTO tb_Company (
                [cpID]
               ,[cpHiID]
               ,[cpBuySellTypeID]
               ,[cpName]
               ,[cpShortName]
               ,[cpIndustry]
               ,[cpSell]
               ,[cpBuy]
               ,[cpAddressID]
               ,[cpAddress]
               ,[cpPost]
               ,[cpTel]
    		)
    
        SELECT 
    			oc.[cpID]
               ,oc.[cpHiID]
               ,oc.[cpBuySellTypeID]
               ,oc.[cpName]
               ,oc.[cpShortName]
               ,oc.[cpIndustry]
               ,oc.[cpSell]
               ,oc.[cpBuy]
               ,oc.[cpAddressID]
               ,oc.[cpAddress]
               ,oc.[cpPost]
               ,oc.[cpTel]
        FROM @CompanyCollection AS oc;
    
    GO
    

    2,建立相对应的数据类型

    /****** Object:  UserDefinedTableType [dbo].[CompanyTableType]    Script Date: 07/04/2014 10:20:51 ******/
    CREATE TYPE [dbo].[CompanyTableType] AS TABLE(
    	[cpID] [int] NOT NULL,
    	[cpHiID] [int] NULL,
    	[cpBuySellTypeID] [nvarchar](200) NULL,
    	[cpName] [nvarchar](200) NOT NULL,
    	[cpShortName] [nvarchar](200) NULL,
    	[cpIndustry] [nvarchar](300) NULL,
    	[cpSell] [nvarchar](200) NULL,
    	[cpBuy] [nvarchar](200) NULL,
    	[cpAddressID] [int] NOT NULL,
    	[cpAddress] [nvarchar](300) NULL,
    	[cpPost] [nvarchar](100) NULL,
    	[cpTel] [nvarchar](100) NULL,
    )
    GO
    

    3,执行代码

            /// <summary>
            /// 单条添加,将datatable作为参数传进去,返回datatable的自增长编号(调用存储过程)
            /// </summary>
            /// <param name="dt"></param>
            /// <returns></returns>
            [WebMethod]
            public DataTable BuySell_Insert(DataTable dt, string token)
            {
                CheckLoginedS(token);
                if (dt.Rows.Count > 0 && dt.Rows != null)
                {
                    tb_BuySell bs = new tb_BuySell();
                    DataTable bt = bs.BuySell_Insert(dt);
                    return bt;
                }
                else
                {
                    return null;
                }
            }
    
    
            /// <summary>
            /// 把datatable当参数,批量添加数据库中,返回datatable的新增行
            /// </summary>
            /// <param name="tb"></param>
            /// <returns></returns>
            public DataTable BuySell_Insert(DataTable tb)
            {
                DataTable dt = null;
                CMD.CommandText = "p_BuySell_Insert";
                CMD.CommandType = CommandType.StoredProcedure;
                CMD.Parameters.Clear();
                CMD.Parameters.AddWithValue("@BuySellCollection", tb);
                dt = DB.DataTable(CMD);
                return dt;
            }
    

      

  • 相关阅读:
    mobilebone.js使用笔记
    js笔记:匿名函数
    java中==和equals和hashcode的区别详解
    JVM基础学习之基本概念、可见性与同步
    面向对象-抽象类和接口解析
    maven使用deploy发布到本地仓库
    Jackson 时间格式化,时间注解 @JsonFormat 与 @DatetimeFormat 用法、时差问题说明
    cxf动态调用webservice设置超时,测试线程安全
    再谈API GateWay服务网关
    微服务实战-使用API Gateway
  • 原文地址:https://www.cnblogs.com/Aamir-Ye/p/4560961.html
Copyright © 2020-2023  润新知