日期:2014-05-18  浏览次数:21334 次

C# winform 读取csv文件 问题(二)
前一帖子三连了。 我去 倒霉csv还没搞好 我就郁闷了。。
之前我用的第一个方法 读大文件会卡掉。
后来有个朋友找了个
http://www.codeproject.com/KB/database/CsvReader.aspx
快速读取
我弄半天搞不懂。。

于是我自己找了个
http://www.csvreader.com
还算可以蛮快的 很好用

但是我后来发现 他读数据 有写数据会显示

貌似读到10行后开始出现 没格一列 就会出来 一列 DEMO

求救啊 大侠们 速度了。。多给分

------解决方案--------------------
F11单步,DEMO那里显示的
------解决方案--------------------
http://www.shilidata.com/showforum-44.aspx
------解决方案--------------------
demo?? 
难道用了试用版的库了?
看看下载CsvReader 的地方是不是需要购买的,没费下载的只是试用版。
------解决方案--------------------
CsvReader不是开源的吗? Codeproject上有看到过啊
------解决方案--------------------
探讨
demo??
难道用了试用版的库了?
看看下载CsvReader 的地方是不是需要购买的,没费下载的只是试用版。

------解决方案--------------------
你一次性读取出来肯定是会很慢的呀
------解决方案--------------------
看这里csv的部分内容是否对楼主有帮助
 Code Project 上有篇文章,
A Fast CSV Reader
http://www.codeproject.com/KB/database/CsvReader.aspx

http://www.cnblogs.com/downmoon/archive/2009/01/15/1376693.html

http://blog.csdn.net/downmoon/archive/2009/01/17/3796026.aspx
------解决方案--------------------
用file类试试,然后分拣出来
我原来试过几十万行的数据,很快的
------解决方案--------------------
csv文件结构很简单的。你自己可以处理的。
使用文件结构读取就可以了。
你使用ue直接打开csv文件,看看里面的结构就明白了。
或者找个小的csv文件使用记事本打开。
------解决方案--------------------
慢就是你的问题了吧
我经常超6w标准
给你超超我这个
包退包换
C# code

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;

namespace ExcelObject{
    internal class ExcelHelper{
        private static FileStream oStream; //当前文件流 
        private static StreamWriter oWriter; //当前输出流 
        private static string strCurFileName; //使用组合函数输出Excel文件时使用的文件名 

 
        public static string GetExcelConnectionStr(string fileName){
            return "provider=Microsoft.Jet.OLEDB.4.0"+";data source="+fileName
                +";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";
        }

        public static string GetTextConnectionStr(string fileName){
            string strPath=Path.GetDirectoryName(fileName);
            return "Provider=Microsoft.Jet.OLEDB.4.0"+";Data Source="+strPath
                +";Extended Properties=\"text;HDR=Yes;IMEX=1;\""; //FMT=Delimited; 
        }

        public static DataSet GetDBFromTextFile(string fn){
            string fileName=Path.GetFileName(fn);
            string strSql="SELECT * From "+fileName;
            string connStr=GetTextConnectionStr(fn);
            var ds=new DataSet("DataSet1");
            var oAdap=new OleDbDataAdapter(
                strSql,
                connStr);
            oAdap.Fill(ds);
            return ds;
        }

       
        public static DataSet GetDBFromExcel(string fileName,string strSql){
            var ds=new DataSet("DataSet1");
            string connStr=GetExcelConnectionStr(fileName);
            var adap=new OleDbDataAdapter(
                strSql,
                connStr);
            adap.Fill(ds);
            return ds;
        }

        
        public static DataSet GetDBFromExcel(string fileName){
            var ds=new DataSet("DataSet1");
            int num=1;
            while(true){
                try{
                    string strSql="SELECT * FROM [Sheet"+n