/// <summary>
/// 批量写入数据库
/// </summary>
/// <param name="urlInfo">Url类</param>
public void InsertDataSet(List<UrlInfo> urlInfos)
{
OracleConnection myConn = new OracleConnection(connStr);
if (myConn.State != ConnectionState.Open)
{
myConn.Open();
}
OracleDataAdapter adapter = new OracleDataAdapter();
adapter.SelectCommand = new OracleCommand("select visitid,mobile,url,startTime,endTime,desIp,desPort,agentIp,agentPort,mobileIp,mobilePort,urlTypeId,comeFrom from cn_visit where 1=0", myConn);
adapter.InsertCommand = new OracleCommand(@"INSERT INTO cn_visit(visitid,mobile,url,startTime,endTime,desIp,desPort,agentIp,agentPort,mobileIp,mobilePort,urlTypeId,comeFrom)
VALUES(seq_cn_visitid.Nextval,:mobile,:url,:startTime,:endTime,:desIp,:desPort,:agentIp,:agentPort,:mobileIp,:mobilePort,:urlTypeId,:comeFrom)", myConn);
adapter.InsertCommand.Parameters.Add(":mobile", OracleType.VarChar, , "mobile");
adapter.InsertCommand.Parameters.Add(":url", OracleType.VarChar, , "url");
adapter.InsertCommand.Parameters.Add(":startTime", OracleType.Number, , "startTime");
adapter.InsertCommand.Parameters.Add(":endTime", OracleType.Number, , "endTime");
adapter.InsertCommand.Parameters.Add(":desIp", OracleType.VarChar, , "desIp");
adapter.InsertCommand.Parameters.Add(":desPort", OracleType.Number,, "desPort");
adapter.InsertCommand.Parameters.Add(":mobileIp", OracleType.VarChar, , "mobileIp");
adapter.InsertCommand.Parameters.Add(":mobilePort", OracleType.Number, , "mobilePort");
adapter.InsertCommand.Parameters.Add(":agentIp", OracleType.VarChar, , "agentIp");
adapter.InsertCommand.Parameters.Add(":agentPort", OracleType.Number, , "agentPort");
adapter.InsertCommand.Parameters.Add(":urlTypeId", OracleType.Number, , "urlTypeId");
adapter.InsertCommand.Parameters.Add(":comefrom", OracleType.Number, , "comeFrom"); adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
adapter.UpdateBatchSize = ; DataSet dataSet = new DataSet(); try
{ adapter.Fill(dataSet); for (int i = ; i < urlInfos.Count; i++)
{
DataRow dr = dataSet.Tables[].NewRow();
dr["mobile"] = urlInfos[i].Mobile;
dr["startTime"] = urlInfos[i].StartTime;
dr["endTime"] = urlInfos[i].EndTime;
dr["url"] = urlInfos[i].Url;
dr["desIp"] = urlInfos[i].DesIp;
dr["desPort"] = urlInfos[i].DesPort;
dr["mobileIp"] = urlInfos[i].MobileIp;
dr["mobilePort"] = urlInfos[i].MobilePort;
dr["agentIp"] = urlInfos[i].AgentIp;
dr["agentPort"] = urlInfos[i].AgentPort;
dr["urlTypeId"] = urlInfos[i].UrlTypeId;
dr["comeFrom"] = urlInfos[i].ComeFrom; dataSet.Tables[].Rows.Add(dr);
}
adapter.Update(dataSet.Tables[]);
}
catch (Exception e)
{
log.Info("写入数据库失败,原因是:" + e.ToString());
}
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
} }

.NET批量数据入库的更多相关文章

  1. C#利用SqlDataAdapte对DataTable进行批量数据操作

    C#利用SqlDataAdapte对DataTable进行批量数据操作,可以让我们大大简化操作数据的代码量,我们几乎不需要循环和不关心用户到底是新增还是修改,更不用编写新增和修改以及删除的SQL语句, ...

  2. BDC、CATT批量数据维护

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. 你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作

    4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述, ...

  4. mysql批量数据脚本

    mysql批量数据脚本 1 建表 create table dept( id int unsigned primary key auto_increment, deptno mediumint uns ...

  5. oracle数据入库

    oracle数据入库 注意:先要处理文件中的分隔符   将数据分列 创建为标准的sql语句   1.在oracle数据库中创建要入库的表如果有该表则不用创建(注:创建字段的数据类型要符合实际逻辑 va ...

  6. excel数据 入库mysql 和 mysql数据 导入excel文件

    1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应ex ...

  7. oracle数据入库出现空格问题

    java做数据入库,不知为什么报如下图错误: debug发现数据是两位,如(FB),但是入库后发现FB后面多了两个空格,检查表发现类型声明是char(4),上网百度,说是char类型会自动补足.参考h ...

  8. ABAP-2-会计凭证批量数据导入本地ACCESS

    ABAP-1-会计凭证批量数据导入本地ACCESS 上一版本出现问题: A.若TXT数据条目超过800万(大概1.3G),则将TXT导入ACCESS过程不成功,ACCESS数据表为空.(Access单 ...

  9. ABAP-1-会计凭证批量数据导入本地ACCESS

    公司会计凭证导入ACCESS数据库,需要发送给审计,原先的方案是采用DEPHI开发的功能(调用函数获取会计凭证信息,然后INSERT到ACCESS数据表),运行速度非常慢,业务方要求对该功能进行优化, ...

随机推荐

  1. [转]Android精品开源项目整理

    前言:       无论你是android的初学者,还有是android开发多年的高手,可能都会有很多想法和经验希望与人分享交流,渴望能够接触到更多的实战项目,正所谓所谓与高手论道才能互补所长,与英雄 ...

  2. e799. 限制JSlider的数值在标记以内

    By default, the slider can take on any value from the minimum to the maximum. It is possible to conf ...

  3. Cisco 3550配置DHCP中继代理

    实验环境: 1.配置两个VLAN 10 和  VLAN 20 VLAN  10  IP地址设置:192.168.10.1  255.255.255.0  (192.168.10.1是VLAN 10网关 ...

  4. cuffquant 定量的结果全部为-nan

    cuffquant 定量的过程中,当所有基因或者转录本的表达量都为0时,定量的结果就回全部是-nan  , 而不是0: 出现这种情况有两种原因: 1) 参考基因组搞错了,比对和定量的不是同一个参考基因 ...

  5. Windows环境下ELK(5.X)平台的搭建

    一.Windows环境下ELK平台的搭建(2.*) 1.安装配置Java环境 在Oracle官网获取最新版的Java版本,由于只是运行不是开发,所以也可以只下载JRE.官网:http://www.or ...

  6. 《经久不衰的Spring框架:@ResponseBody 中文乱码》(转)

    转载自:http://www.cnblogs.com/shanrengo/p/6429291.html 问题背景 本文并不是介绍@ResponseBody注解,也不是中文乱码问题的大汇总笔记,这些网上 ...

  7. 'AndroidManifest.xml' must have a minimum of 2 segments.

    Manifest下必须有二级域名 <manifest xmlns:android="http://schemas.android.com/apk/res/android" p ...

  8. 安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

    记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安 ...

  9. CSS3与动画有关的属性transition、animation、transform对比

    最近应公司需求,需要用css3做动画,终于把以前一直傻傻分不清楚的三个属性理解了. 索性在这里进行一个简单的对比,加深自己的记忆. 浏览器兼容性 CSS3 transform 属性 Internet ...

  10. jenkins 升级jdk到1.8.0 报java.io.IOException:Unable to read /var/lib/jenkins/config.xml

    今天手动下载安装了jdk1.8.0, 并修改了配置文件,当前默认使用该版本的jdk.但是报出一下错误: 问题查到: https://issues.jenkins-ci.org/browse/JENKI ...