CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

求助批量提交,insert语句!

楼主laurel218(elvalin)2005-11-08 14:37:59 在 .NET技术 / C# 提问

有几千条记录要insert到数据库,现在做成单条循环插入的,有点慢,  
  想做成批量提交,应该能快点吧  
  请各位批点! 问题点数:50、回复次数:20Top

1 楼Kiven1978(谁隐)回复于 2005-11-08 14:42:06 得分 10

insert   into   表名(字段名,N,.....)select   *   from   表名Top

2 楼hbxtlhx(平民百姓-自已动手,丰衣足食)回复于 2005-11-08 14:42:26 得分 10

把这些数据编写成一个XML的文档格式,然后把这个XML传到数据库中,用数据库的XML处理一次性把这些内容当做一个表的内容Insert到你的数据库的表中。如果是SqlServer的话可以参见:  
  sp_xml_preparedocument,OPENXML和sp_xml_removedocument的用法。Top

3 楼jinjazz(近身剪)回复于 2005-11-08 14:43:01 得分 10

可用insert   into   和select   into    
  如果是倒入数据,还可以用dts工具等Top

4 楼loveyzy(菌哥)回复于 2005-11-08 14:43:44 得分 10

方法一:在查询管理器中,用  
  insert   into   表名()  
  select   列名1,列名2...from   源表名  
   
  方法二:用Data   Application   Block的Fill方法  
  Top

5 楼Kiven1978(谁隐)回复于 2005-11-08 14:44:41 得分 0

注:后面的select   查询出来是多条记录,可同时插入多条,但后面查询出来的字段要合insert里的相同Top

6 楼laurel218(elvalin)回复于 2005-11-08 14:47:35 得分 0

楼上几位说的好象不是批量提交啊!  
  我要几千条记录批量提交到数据库啊!Top

7 楼jinjazz(近身剪)回复于 2005-11-08 14:50:11 得分 0

你的数据是怎么来的,一条条填充的话,那只能一条条的插入了Top

8 楼jerrie_1()回复于 2005-11-08 14:54:26 得分 0

不知道用SqlDataAdapter.InsertCommand可不可以,这个好像也能处理批量提交数据的。Top

9 楼hbxtlhx(平民百姓-自已动手,丰衣足食)回复于 2005-11-08 14:56:12 得分 10

要想批量提交,就要批量的传到数据库中,要想批量的传到数据库中就要想办法把数据组织起来再传到数据加,怎么组织呢,用XML的格式来处理是一种方法,同时数据库是支持XML的解析的。楼主可以考虑一下这个方法嘛。Top

10 楼hbxtlhx(平民百姓-自已动手,丰衣足食)回复于 2005-11-08 14:58:02 得分 0

当然用XML传入数据库用存储过程是来做是最合适的。  
  另外也可以考虑用数据适配器的Update方法也是可以的。不过我不喜欢用这个东西。Top

11 楼laurel218(elvalin)回复于 2005-11-08 15:04:18 得分 0

楼上的兄弟,来看一下,用XLM方法怎么做啊!  
  批量的数据还是动态产生的,这样可以吗?  
  Top

12 楼hbxtlhx(平民百姓-自已动手,丰衣足食)回复于 2005-11-08 15:10:00 得分 0

当然可以了!  
  你可以把你的数据用XmlDocument编写成一个XML字符串,然后传到存储过程里。比如如下的一个格式就行:  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <Root>  
  <Details>  
  <Row   ID=1   Name='li'   age='28'   money='5000.00'/>  
  <Row   ID=2   Name="wang'   age='23'   money='6000.00'/>  
  ...  
  </Details>  
  </Root>Top

13 楼laurel218(elvalin)回复于 2005-11-08 15:11:16 得分 0

除了用XML方法,应该还有其它的批量提交方法吧Top

14 楼desailly(Grad_BeLLeck)回复于 2005-11-08 15:16:59 得分 0

学一下Top

15 楼linanwang(紫杉)回复于 2005-11-08 15:30:01 得分 0

一次写上100条插入语句用回车隔开一起执行,不就行了    
   
   
   
  ====CSDN   小助手   V2.0   2005年10月16日发布====  
  CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件  
  界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx  
  下载:http://szlawbook.com/csdnv2/csdnv2.rar  
   
  为神六喝彩,向所有科技工作者致敬!  
  拒绝日货。Top

16 楼particle1208(岁月,自己,梦想)回复于 2005-11-08 15:37:18 得分 0

如果是B/S结构只能是一条一条的Insert进去了。因为你无论用什么控件,到最后也是要产生Insert语句提交给数据库的,因为数据库只认Sql语句。Top

17 楼weir168(爱之竹)回复于 2005-11-08 15:44:33 得分 0

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶Top

18 楼q_po_o(两个人)回复于 2005-11-08 15:46:57 得分 0

先循环插入到DateSet中,然后updataTop

19 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-11-08 15:47:25 得分 0

用Insert语句最快!  
   
  或者将全部Insert语句构成一个存储过程,运行后再删除该存储过程。Top

20 楼mkkii(MK)回复于 2005-11-08 16:09:07 得分 0

我也时常有大量插入资料的需求,有时一做就是30000笔资料,若一次大量插入资料库时  
  会耗费很多时间和资源,而且会影响到其他资料库运行,因此我的思考是相反的,为了  
  避免插入资料时造成资料库跑不动,我在插入资料时会使用timer或是排程(at),每3秒  
  钟才insert   1或2笔资料,如此一来我在插入资料时就不会造成资料库的lag了,其他程序  
  也可以正常运行。Top

相关问题

  • 批量提交insert语句总是提示出错,代码见内,请帮忙分析下
  • insert语句没有提交啊!
  • 批量Insert SQL语句问题
  • insert语句
  • 求Insert 语句 ????
  • insert语句
  • 求批量插入语句
  • paradox的INSERT语句
  • INSERT INTO 语句错误?
  • insert 语句报错?

关键词

  • 语句
  • 数据库
  • 数据
  • 存储过程
  • 资料
  • 查询
  • csdn
  • xml
  • 提交
  • 插入

得分解答快速导航

  • 帖主:laurel218
  • Kiven1978
  • hbxtlhx
  • jinjazz
  • loveyzy
  • hbxtlhx

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo