1,建立存储过程

  1. create PROCEDURE [dbo].[p_Company_Insert]
  2. @CompanyCollection [CompanyTableType] READONLY
  3. AS
  4. INSERT INTO tb_Company (
  5. [cpID]
  6. ,[cpHiID]
  7. ,[cpBuySellTypeID]
  8. ,[cpName]
  9. ,[cpShortName]
  10. ,[cpIndustry]
  11. ,[cpSell]
  12. ,[cpBuy]
  13. ,[cpAddressID]
  14. ,[cpAddress]
  15. ,[cpPost]
  16. ,[cpTel]
  17. )
  18.  
  19. SELECT
  20. oc.[cpID]
  21. ,oc.[cpHiID]
  22. ,oc.[cpBuySellTypeID]
  23. ,oc.[cpName]
  24. ,oc.[cpShortName]
  25. ,oc.[cpIndustry]
  26. ,oc.[cpSell]
  27. ,oc.[cpBuy]
  28. ,oc.[cpAddressID]
  29. ,oc.[cpAddress]
  30. ,oc.[cpPost]
  31. ,oc.[cpTel]
  32. FROM @CompanyCollection AS oc;
  33.  
  34. GO

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

  1. /****** Object: UserDefinedTableType [dbo].[CompanyTableType] Script Date: 07/04/2014 10:20:51 ******/
  2. CREATE TYPE [dbo].[CompanyTableType] AS TABLE(
  3. [cpID] [int] NOT NULL,
  4. [cpHiID] [int] NULL,
  5. [cpBuySellTypeID] [nvarchar](200) NULL,
  6. [cpName] [nvarchar](200) NOT NULL,
  7. [cpShortName] [nvarchar](200) NULL,
  8. [cpIndustry] [nvarchar](300) NULL,
  9. [cpSell] [nvarchar](200) NULL,
  10. [cpBuy] [nvarchar](200) NULL,
  11. [cpAddressID] [int] NOT NULL,
  12. [cpAddress] [nvarchar](300) NULL,
  13. [cpPost] [nvarchar](100) NULL,
  14. [cpTel] [nvarchar](100) NULL,
  15. )
  16. GO

3,执行代码

  1. /// <summary>
  2. /// 单条添加,将datatable作为参数传进去,返回datatable的自增长编号(调用存储过程)
  3. /// </summary>
  4. /// <param name="dt"></param>
  5. /// <returns></returns>
  6. [WebMethod]
  7. public DataTable BuySell_Insert(DataTable dt, string token)
  8. {
  9. CheckLoginedS(token);
  10. if (dt.Rows.Count > 0 && dt.Rows != null)
  11. {
  12. tb_BuySell bs = new tb_BuySell();
  13. DataTable bt = bs.BuySell_Insert(dt);
  14. return bt;
  15. }
  16. else
  17. {
  18. return null;
  19. }
  20. }
  21.  
  22. /// <summary>
  23. /// 把datatable当参数,批量添加数据库中,返回datatable的新增行
  24. /// </summary>
  25. /// <param name="tb"></param>
  26. /// <returns></returns>
  27. public DataTable BuySell_Insert(DataTable tb)
  28. {
  29. DataTable dt = null;
  30. CMD.CommandText = "p_BuySell_Insert";
  31. CMD.CommandType = CommandType.StoredProcedure;
  32. CMD.Parameters.Clear();
  33. CMD.Parameters.AddWithValue("@BuySellCollection", tb);
  34. dt = DB.DataTable(CMD);
  35. return dt;
  36. }

  

sql 通过存储过程和自定义类型批量新增数据的更多相关文章

  1. 11月16日《奥威Power-BI基于SQL的存储过程及自定义SQL脚本制作报表》腾讯课堂开课啦

           上周的课程<奥威Power-BI vs微软Power BI>带同学们全面认识了两个Power-BI的使用情况,同学们已经迫不及待想知道这周的学习内容了吧!这周的课程关键词—— ...

  2. mybatis学习之路----mysql批量新增数据

    原文:https://blog.csdn.net/xu1916659422/article/details/77971867 接下来两节要探讨的是批量插入和批量更新,因为这两种操作在企业中也经常用到. ...

  3. 使用EF批量新增数据十分缓慢

    使用EF来批量新增数据,发现效率非常的差,几千条数据时甚至需要几分钟来执行,迫于无奈使用sql来执行了. 今天偶然看到一篇关于EF的文章,才发觉原来是自己对EF不够了解的原因. 一般新增时我们是将所有 ...

  4. 批量新增数据(BuckCopy)

    批量新增数据(BuckCopy) 使用webService传输数据时要注意,Datatable中的数据类型,以及科学计数 /// <summary> /// 批量新增数据 /// < ...

  5. Oracle批量新增数据最佳实践

    一.需求描述 现在的项目改造过程中,从国产的Gbase数据库改造为Oracle数据库,遇到一个问题有的业务操作需要批量新增数据. 这也是一个比较常规的操作,有很多地方确实需要一次性新增多条数据.Gba ...

  6. MyBatis基础入门《十三》批量新增数据

    MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =============================== ...

  7. mybatis 学习笔记(4) —— 批量新增数据

    1.业务是从前台传入List<T> ,在controller层接受参数,并进行批量新增操作. 2.需要处理的细节 a) mybatis可以支持批量新增,注意数据表需要将主键设置成自增列. ...

  8. Sql自定义表类型批量导入数据

    -- 创建自定义表类型 CREATE TYPE [dbo].[App_ProductTable] AS TABLE( [p_name] [varchar](50) NOT NULL, [p_audio ...

  9. SQL中存储过程和自定义函数的区别

    存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...

随机推荐

  1. Apache conf文件配置个人总结

      其实说到conf文件的配置,网上那必定是大堆大堆的,故今儿写着篇小博文,也只是做个总结,至于分享的价值吗,如果对屏幕前的你有用,我也很乐意啦.   首先,我们要找到Apache安装目录,我的是Ap ...

  2. oracle_深刻理解数据库的启动和关闭

    Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能. 一.启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和 ...

  3. 兼容安卓的javaproject1.0

    <pre class="java" name="code"> //兼容安卓的系统package cn.com.likeshow; import ja ...

  4. HTML5多图片拖拽上传带进度条

    前言 昨天利用css2的clip属性实现了网页进度条觉得还不错,但是很多情况下,我们在那些时候用进度条呢,一般网页加载的时候如果有需要可以用,那么问题就来了,怎么才算整个加载完毕呢,是页面主要模块加载 ...

  5. Fluent Validation + NInject3 + MVC5

    Fluent Validation + NInject + MVC - Why & How : Part 1 http://fluentvalidation.codeplex.com/ htt ...

  6. AIX加入能telnet远程连接方法的帐户

    AIX 加入该账户可以使用命令mkuser 和 SMIT 两种方法,这里有SMIT方式 1.采用root 帐户登录AIX 2.输入 smitty user 3.选择Add a User 4.输入&qu ...

  7. bootstrap collapse MVC .net漂亮的折叠List

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta na ...

  8. 客户端程序通过TCP通信传送"小文件"到服务器

    客户端程序通过TCP通信传送"小文件"到服务器 [c#源码分享]客户端程序通过TCP通信传送"小文件"到服务器 源码  (不包含通信框架源码,通信框架源码请另行 ...

  9. MVC5控制器、路由、返回类型、选择器、过滤器

    ASP.NET MVC5 学习笔记-1 控制器.路由.返回类型.选择器.过滤器   [TOC] 1. Action 1.1 新建项目 新建项目->Web->Asp.net Web应用程序, ...

  10. Hibernat之关系的处理多对多

    第一步:编写两个pojo,比如一个学生表一个课程表  这里使用注解. 需要 课程表: package com.qcf.pox; import java.util.HashSet; import jav ...