/// <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. 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置

    第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置 1.xadmin主题设置 要使用xadmin主题,需要在一个app下的adminx.py后台注册文件里,写一 ...

  2. (转)ffmpeg资源一览

    一. FFmpeg主站1. FFmpeg的源码发布,资料网址:  http://www.ffmpeg.org/ 源代码镜像站点网址:https://github.com/FFmpeg/FFmpeg 2 ...

  3. [2013.7.5新鲜出炉] Ubuntu12.04下载Android4.0.1源码全过程----------------折腾两天,终于下好,附若干问题解决

    本文转至 http://blog.csdn.net/yanzi1225627/article/details/9255457 下载源码这一步折腾了我整整两天,期间遇到很多问题,哎,记录于此,希望日后再 ...

  4. Python学习注脚

    python版本:2.7.6 Python基础学习书摘. 变量命名规范: python的变量名只能由字母和数字组成,且必须以字母开头. python的变量名不能使用系统已有的关键字,包括: and c ...

  5. MVC2 ,MVC3 ,MVC4,MVC5的区别,EF的各个版本的区别;LocalDB是个啥

    2010年發行ASP.NET MVC 2.0版,2011年發行ASP.NET MVC 3.0版,2012年發行ASP.NET MVC 4.0版 MVC3 需要.net framework 4.0 版本 ...

  6. form中的button按钮在IE11中自动提交表单问题导致弹出框关闭之后表单被重置

    最近几天,测试系统,遇到一个兼容性问题,form中有一个button按钮,没有指定type类型,点击按钮弹出框选择值之后回填给form上的一个单行文本框,在IE6.IE7.IE8.IE9.IE10中测 ...

  7. linux中crontab命令

    一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...

  8. Objective-C语法之扩展(Extension)的使用

    Objective-C 2.0增加了Class Extension用于解决两个问题: 可声明私有可读写的属性,而在类的声明中是同名的公开只读属性,从而来支持公开只读.私有可读写的属性 可声明私有方法: ...

  9. Greenplum-cc-web监控软件安装时常见错误

     错误error: 1.no pg_hba.conf entry for host “::1”, user “gpmon”, database “gpperfmon”, SSL off 解决: vi ...

  10. iview给radio按钮组件加点击事件

    <RadioGroup v-model="formValidate.phone"> <Radio label="phone">商家电话& ...