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.

举个例子

  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;
                }

            }
}

------解决方案--------------------