51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1208|回复: 0
打印 上一主题 下一主题

原创经典[CSV→DataSet]类

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-12-1 17:56:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个解析CSV file的经典函数。曾尝试用odbc直接处理csv文件,发现虽然很好用,但数据量一但大的话会出现许多错误,要解决的问题很多,诸如字符编码问题:必须utf-8→ansi;某些column不显示的问题(绝对妖- -!!!)等。寻遍各大站点,鲜有现成的solution,BB给的在codeproject上的又比较复杂- -!!!,于是自己动手写了一个...方便易用。感觉用起来很爽,故特此拿出来share:

public DataSet GetDataSetFromCSV(string filePath, string fileName)
    {
        StreamReader reader = new StreamReader(filePath + "\\" + fileName);
        string str;
        DataTable dt = new DataTable();
        int max_column = 0;
        while ((str = reader.ReadLine()) != null)
        {
            string[] split = str.Split(',');
            int column_num = 0;
            foreach (string unitstr in split)
            {
                column_num = column_num + 1;
            }
            if (column_num > max_column)
            {
                int j = column_num - max_column;
                max_column = column_num;
                while (j != 0)
                {
                    j = j - 1;
                    dt.Columns.Add();
                }
            }
            DataRow dr = dt.NewRow();
            int i = 0;
            foreach (string unitstr in split)
            {
                dr = unitstr;
                i = i + 1;
            }
            dt.Rows.Add(dr);
        }
        DataSet ds = new DataSet();
        ds.Tables.Add(dt);
        return ds;
    }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 03:37 , Processed in 0.060258 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表