我有个文本文件,里面是很多条纪录
格式都是统一的:#题目:中国医学会议
 作者:张三,李四
 日期:2000-1-1
 正文:
     .........#题目:医学系统分析
 作者:张X,李M
 日期:2000-10-1
 正文:
     .........#题目:中国医学会议
 作者:张A,李C
 日期:2000-1-1
 正文:
     ..................能不能写个代码直接把这些纪录插到数据库中?对应字段 题目,作者,日期,正文,

解决方案 »

  1.   

    就一句sql代码搞定,导入sql2000的代码。 
    BULK INSERT 表名 FROM 'F:\你的文本文件.txt' WITH  ( FIELDTERMINATOR ='以什么符号分割数据', ROWTERMINATOR= '以什么符号加\n结尾')--\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n 
    例如:BULK INSERT bb FROM 'F:\2008-02-18.txt' WITH  ( FIELDTERMINATOR =',', ROWTERMINATOR= ',\n') 
    bb是表名,f盘中的F:\2008-02-18.txt文件,  FIELDTERMINATOR =','每个数据是以逗号分隔的,ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。 
    我导入过很多次。 
    注意:你要把你的表结构现建立好。3个字段就把列名建立好。 
      

  2.   

    用Sql的命令导入是效率最高,速度最快的
      

  3.   

    也可在程序中读取
    http://blog.csdn.net/changjiangzhibin/archive/2008/04/19/2306126.aspx
      

  4.   

    sql代码不懂的话可以用企业管理器试试看
      

  5.   

    现在怎么还用TXT呀,XML不是更好
      

  6.   

    请参考http://topic.csdn.net/u/20080601/18/3b7584b0-6738-4c2d-83d2-e040555cf150.html?seed=1394065831
      

  7.   

    1.如果文本文件不是很大的话
    把文件读到string里
    2.执行这句正则表达式:
    "处理后的串" = Regex.Replace("文件内容", @"#题目\:(?<title>[^\s]+)\s+作者\:(?<author>[^\s]+)\s+日期\:(?<date>[^\s]+)\s+正文\:\s*(?<content>[^\s]+)\s*", delegate(Match m) { return m.Groups[1].Value + "," + m.Groups[2].Value + "," + m.Groups[3].Value + "," + m.Groups[4].Value + Environment.NewLine; }, RegexOptions.IgnoreCase);
    把处理后的串写入文件"C:123.txt"3.在数据库建个表abc,前4列依次存放题目,作者,日期,正文4.执行BULK INSERT 表名 FROM C:123.txt' WITH  ( FIELDTERMINATOR =',', ROWTERMINATOR= '\n')5.最后把123.txt删掉
      

  8.   

    StreamReader sr = new StreamReader("D:\Test.txt",Encoding.GetEncoding("Unicode"));
    string str = sr.ReadToEnd().Trim();
    sr.Close();以上是就C Sharp读.TXT文件的例子......具体参数解说...你可以自己把代码打下去...看参数里的解说...