• 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;
            }
    

      

  • 相关阅读:
    一步一步精通 Windows Sockets 网络编程(2)
    一步一步精通 Windows Sockets 网络编程(3)
    一步一步精通 Windows Sockets 网络编程(连载)
    Sql Server 创建远程连接
    js 去字符串两边空格
    C# .Net RSA加解密以及SHA1WithRsa签名生成及验签
    win10远程桌面怎么保存密码?win10让远程桌面记住密码的方法
    mysql skipgranttables 无法启动
    C# .Net WebClient http及https请求
    iis8 是没有读系统的短日期格式
  • 原文地址:https://www.cnblogs.com/Aamir-Ye/p/4560961.html
Copyright © 2020-2023  润新知