/// <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. SAP Process Integration - High Level ERP/Integration Process --- Cargill Process Concept Design

    Customer Industry: Commercial off-the-shelf (COTS) application ,, Food Ingredients or Agricultural S ...

  2. (笔记)Mysql命令show databases:显示所有数据库

    show databases命令用于显示所有数据库. show databases命令格式:show databases; (注意:最后有个s) 例如:mysql> show databases ...

  3. 高通 打开 wifi 驱动 log

    在WCNSS_qcom_cfg.ini文件中添加 vosTraceEnableSME=255 vosTraceEnableWDI=255 vosTraceEnableWDA=255 vosTraceE ...

  4. Android hide Navigation bar

    最近一个app需要隐藏Navigation bar导航栏. 参考文档 http://blog.csdn.net/zwlove5280/article/details/52823128 http://j ...

  5. DNS Bind服务配置解析

    DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 一.DNS服务器工作模式分类: 1.主服务器:在特定区域内具有唯一 ...

  6. 分享8款令人惊叹的HTML5 Canvas动画特效

    HTML5的确可以制作出非常绚丽的网页动画效果,尤其是利用HTML5 Canvas特性和HTML5 3D特性,我们更加可以欣赏到超酷的动画特效.今天我从html5tricks网站上整理了8款令人惊叹的 ...

  7. linux和windows互传文件/用户配置文件和密码配置文件/用户组管理/用户管理

    2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 linux和windows互传文件 显示日期date [root@centos_1 ...

  8. Android 监听屏幕唤醒和关闭的广播

    今天希望应用程序的服务运行时,可以监听到屏幕的唤醒.继续百度学习法,连同监听闭幕关闭也一同学习了. 此种情况需要动态注册系统广播.在AndroidManifest.xml中静态注册的实际运行中无效. ...

  9. Objective-C语法之可变参数

    可变参数的方法在Objective-C中不罕见,像Cocoa中的很多常见的方法都是可变参数的,如: NSLog(NSString *format, ...) + (id)arrayWithObject ...

  10. ios模拟器已安装但xcode无法显示

    最近把系统抹盘重装了, 然后用Time Machine恢复到原始状态, 一切安好, 但是使用xcode的时候发现一个模拟器都没有了: 各种折腾, 重装SDK啊, 重装xcode啊,最后发现, 如果你的 ...