ftp读取txt数据并插入数据库
去官网下载http://enterprisedt.com/ .netftp组件
目前最新版本为2.2.3,下载后在bin目录中找到edtFTPnet.dll,在项目中添加引用。
using EnterpriseDT.Net.Ftp;
public partial class test_ftp : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
Connect_Ftp();
insertdata();
}
}
#region 连接FTP private static void Connect_Ftp() {
string[] strArray = null;
FTPClient ftp = new FTPClient();
var itccConfig = ConfigFactory.GetConfig<IitccConfig>();
try
{ //以下开始获取FTP数据
ftp.RemoteHost = itccConfig.FTPIp;
ftp.ControlPort = 21;
ftp.Timeout = 0x2710;
ftp.Connect();
ftp.Login(itccConfig.FTPName, itccConfig.FTPPassWord);
ftp.ConnectMode = FTPConnectMode.PASV;
ftp.TransferType = FTPTransferType.ASCII;
ftp.ChDir("/home/ftpuser/itcc/"); //文件夹路径
strArray = ftp.Dir(".", true);
string strDay = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
//foreach (string strFile in strArray)
//{ //if (strFile.Length >= 0)
//{ //string strfilename = strFile.Substring(0, 24).TrimStart();
string strfilename = "poc_ftp_T04_2015-06-11T0329309.txt";
//if (strfilename == "per" + strDay + ".txt")
//{ // if (CheckIsOver(ConnectionString, strfilename, strDay))
//{ //if (CheckIsInserting(ConnectionString, strfilename, strDay))
//{ //string strLogFile = @"E:\log\upload\copy." + strfilename;
string strLogFile = @"E:\downftp\copy." + strfilename;
if (File.Exists(strLogFile))
File.Delete(strLogFile);
ftp.Get(strLogFile, strfilename);
//ftp.Get(strfilename); //以上为获取FTP数据,并将文件存放在本地硬盘中
//Insert_Date(ConnectionString, null, strDay, strDataInfo, strFilePath + @"/" + strLogFile);//数据插入数据库 // } //} //} //} //}
if (ftp.Connected)
{ ftp.Quit();
}
} catch (Exception ex)
{ if (ftp.Connected)
{ ftp.Quit(); }
throw ex; }
}
#endregion
private static void insertdata() {
FileStream fs = new FileStream("E:/downftp/copy.poc_ftp_T04_2015-06-11T0329309.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
System.IO.StreamReader my = new System.IO.StreamReader(fs, System.Text.Encoding.UTF8);
string line;
while ((line = my.ReadLine()) != null)
{ //Response.Write(line + "<br />");
string[] mm = line.Split(';');
Insert(mm); }
my.Close();
} private static void Insert(string[] mm)
{ for (int i = 0; i < mm.Length/8; i++)
{ string employeecode = mm[i*8];
string employeename = mm[i*8+1];
string phone1 = mm[i * 8 + 2];
string phone2 = mm[i * 8 + 3];
string phone3 = mm[i * 8 + 4];
string email = mm[i * 8 + 5];
string department = mm[i * 8 + 6];
string workplace = mm[i * 8 + 7];
EmployeeCommand cmd = new EmployeeCommand();
if (cmd.EmployyeeCode(employeecode) == true)
{ cmd.UpdateEmployee(employeecode, employeename, phone1, phone2, phone3, department, workplace, email); }
else { cmd.CreateEmployee(employeecode, employeename, phone1, phone2, phone3, department, workplace, email);
} } }
}
ftp读取txt数据并插入数据库的更多相关文章
- matlab中读取txt数据文件(txt文本文档)
matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...
- 【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中
执行了save()方法 sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提 ...
- SqlBulkCopy将DataTable中的数据批量插入数据库中
#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...
- 多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中【我】
多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中 package com.xxx.xx.reve.service; import java.util.ArrayL ...
- list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- c#逐行分元素读取记事本txt数据写进数据库
其实这里最关键的一个方法是 StreamReader类里的 ReadLine();这个方法可以逐行读取txt流里面的数据.写了个简单的demo,已经加上了详细的注释说明. ok,好了,不废话,下面 ...
- [转] JAVA读取excel数据(插入oracle数据库)
原文地址:http://blog.csdn.net/zczzsq/article/details/16803349 本实例做的是读取execl(只能读取.xls的execl,即只能读取03版的),如果 ...
- java读取本地txt文件并插入数据库
package com.cniia.ny.web.control.configManage; import java.io.BufferedReader; import java.io.File; i ...
- SqlBulkCopy实现大容量数据快速插入数据库中
一般情况下,我们手写sqlhelper类,在此类中定义一个数据插入到数据库的一个方法.将数据库连接密封在using()的语句中.using显示了Idispose接口.可以及时释放数据库连接资源.代码如 ...
随机推荐
- Spring AOP AspectJ Pointcut 表达式例子
主要来源:http://howtodoinjava.com/spring/spring-aop/writing-spring-aop-aspectj-pointcut-expressions-with ...
- 面向对象程序设计-C++_课时26拷贝构造Ⅰ_课时27拷贝构造Ⅱ
一旦写了一个类,给它3个函数: 1default construtor 2virtual destructor 3copy constructor Constructions vs. assignme ...
- c# 第三方控件 闪退
使用了第三方控件之后 出现了闪退的情况! 该第三方控件的软件没有注册或没有安装改第三方控件的软件
- SQL Convert XML to Table
将xml nodes 属性中的值 转为table 形式 declare @xml2 xml set @xml2 = '<CMADatas> <CMAData CmaName=&quo ...
- ORA-03113: 通信通道的文件结尾 进程 ID: 764 会话 ID: 125 序列号: 5
昨天因为导入很久数据,最后一看是因为数据文件不够,后来就关机了.现在,开启数据库,总是报“ORA-03113: 通信通道的文件结尾” SQL> conn /as sysdba; 已连接到空闲例程 ...
- Oralce Exp 与 Imp 的使用方法
1.完全:EXP SYSTEM/SYSTEM@ORCL FILE=C:\FULL.DMP LOG=C:\FULL.DMP.LOG FULL=Y BUFFER=819200如果要执行完全导出, ...
- left outer join
table A: Field_K, Field_A 1 a 3 b 4 ...
- T4模板之菜菜鸟篇
一.废话 T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visual Studio 中,“ ...
- 如何在oracle中导入导出(备份&恢复)dmp数据库文件
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利 ...
- .Net平台-MVP模式再探(二)
PS: 本文与 上一遍文章 没有什么必然的联系,可以说是对于MVP的一定的加深,或许在理解上比上一篇多有点难度. 正文 一.简单讲讲MVP是什么玩意儿 如果从层次关系来讲,MVP属于P ...