C#读取TXT文本,按条件读取数据并安插数据库
C#读取TXT文本,按条件读取数据并插入数据库。
****************************************************************************************************
执行开始: 2007-7-12 17:00:59
执行完成: 2007-7-12 17:01:09
****************************************************************************************************
执行开始: 2007-7-12 17:03:02
在目的的行号为 1975 处出错。到目前为止,在该任务中遇到错误数: 1。
错误源: Microsoft OLE DB Provider for SQL Server
错误描述: 语句已终止。
错误帮助文件:
错误帮助内容 ID: 0
错误源: Microsoft OLE DB Provider for SQL Server
错误描述: 违反了 PRIMARY KEY 约束 'PK_CASHFLOW'。不能在对象 'CASHFLOW' 中插入重复键。
错误帮助文件:
错误帮助内容 ID: 0
执行完成: 2007-7-12 17:03:02
****************************************************************************************************
如上所示,TXT文档的内容是这样的,一直延续下去,*号之间有一个执行开始时间,一个执行完成时间,如果没有错误就只有执行时间和完成时间,如果有错误的话就有一些错误源,错误描述等,我想按这个时间读取错误描述后的内容,各位大侠有什么好的解决方法?方法好,加分。
------解决方案--------------------
那就用正则表达式比较方便
当然文件大的话正则表达式未必高,你可以写一个文件按行扫描,扫描的时候只读取开头为“错误”的行
------解决方案--------------------
流方式、ODBC、OLEDB都可以操作txt
如果你不想用正则过滤,就用OLEDB.
举个例子
------解决方案--------------------
****************************************************************************************************
执行开始: 2007-7-12 17:00:59
执行完成: 2007-7-12 17:01:09
****************************************************************************************************
执行开始: 2007-7-12 17:03:02
在目的的行号为 1975 处出错。到目前为止,在该任务中遇到错误数: 1。
错误源: Microsoft OLE DB Provider for SQL Server
错误描述: 语句已终止。
错误帮助文件:
错误帮助内容 ID: 0
错误源: Microsoft OLE DB Provider for SQL Server
错误描述: 违反了 PRIMARY KEY 约束 'PK_CASHFLOW'。不能在对象 'CASHFLOW' 中插入重复键。
错误帮助文件:
错误帮助内容 ID: 0
执行完成: 2007-7-12 17:03:02
****************************************************************************************************
如上所示,TXT文档的内容是这样的,一直延续下去,*号之间有一个执行开始时间,一个执行完成时间,如果没有错误就只有执行时间和完成时间,如果有错误的话就有一些错误源,错误描述等,我想按这个时间读取错误描述后的内容,各位大侠有什么好的解决方法?方法好,加分。
------解决方案--------------------
那就用正则表达式比较方便
当然文件大的话正则表达式未必高,你可以写一个文件按行扫描,扫描的时候只读取开头为“错误”的行
------解决方案--------------------
流方式、ODBC、OLEDB都可以操作txt
如果你不想用正则过滤,就用OLEDB.
举个例子
public static DataTable TxtToDataTable(string path)
{
DataTable dt = new DataTable();
string constr = string.Empty;
FileInfo fi = new FileInfo(path);
if (fi.Extension.ToLower().CompareTo(".txt") == 0)
{
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=TEXT;Data Source=" + fi.DirectoryName;
string SQLString = " Select * From " + fi.Name;
using (OleDbConnection conn = new OleDbConnection(constr))
{
conn.Open();
OleDbDataAdapter AdapterText = new OleDbDataAdapter(SQLString, conn);
AdapterText.Fill(dt);
return dt;
}
}
}
------解决方案--------------------