环境:
一个简单的文本文件,文件格式为
20060928, A2, 23:40, 00001, 20060928, 23:50
20060928, A2, 23:40, 00001, 20060928, 23:50
20060928, A2, 23:40, 00001, 20060928, 23:50目的:
读取文件内数据,并insert到sql数据库设想方法一:
不断读取文件流,在遇到<,>时,把前面的字符保存到变量,在遇到<换行号>时,把前面的6个变量保存到数据库
此方法比较麻烦设想方法二:
有无方便的类可以完成此任务?
------------------------------------------------------------------请有做过类似功能的高手指点,谢谢.

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5236/5236741.xml?temp=.2698786
      

  2.   

    我以前做賬單系統的時候
    是選對某一類文本文件設計一個模板,然後設一些規則
    然後每讀取XXX行就insert一次數據庫.
    這樣內存銷費的比較少.
      

  3.   

    赞同kason_j(伊松)这样内存占用及Cpu占用比较均衡。
      

  4.   

    如果是Oracle数据库,建议使用Sqlldr...如果直接做的话,那就循环....
    ReadLine();
    Split(',');
    insert();
    ..
    不过这样效率挺低的...
      

  5.   

    曾经有人问过可以用OleDB方式来读,Sqlserver可以用bcp...都没有尝试过,自己曾用过Oracle的Sqlldr...可以看下这个贴子,或许能给你一些启发...http://community.csdn.net/Expert/topic/5236/5236741.xml?temp=.4833795
      

  6.   

    从excel 文件导出文本格式,粘贴到文本框分析文本,然后逐行写入数据库 Dim s As String = TextBox1.Text
            Dim ch As String
            Dim StrTmp As String
            Dim FirstPos As Integer
            Dim LastPos As Integer        Dim i As Integer        Dim k As Integer
            FirstPos = 1
            For i = 1 To Len(s)
                StrTmp = Mid(s, i, 1)
                If StrTmp = vbTab Then
                    LastPos = i
                    ch = Mid(s, FirstPos, (LastPos - FirstPos))
                    strtxt(k) = ch
                    k = k + 1
                End If
                If StrTmp = vbCr Then
                    k = 0
                    LastPos = i
                    ch = Mid(s, FirstPos, (LastPos - FirstPos))
                    If Len(ch) > 1 Then ch = Right(ch, 1)
                    strtxt(5) = ch
                    RecSave(strtxt(0), strtxt(1), strtxt(2), strtxt(3), strtxt(4), strtxt(5))
                End If
                If FirstPos <> 0 Then
                    FirstPos = LastPos
                Else
                    FirstPos = 1
                End If        Next