简单通用的访问CVS的方法

  public DataTable GetCsvData(string filePath, string fileName = "Shipping")
        {
            string path = Path.Combine(filePath, fileName + ".csv");
            string connString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filePath + ";Extensions=asc,csv,tab,txt;";
            try
            {
                using (OdbcConnection odbcConn = new OdbcConnection(connString))
                {
                    odbcConn.Open();
                    OdbcCommand oleComm = new OdbcCommand();
                    oleComm.Connection = odbcConn;
                    oleComm.CommandText = "select * from [" + fileName + "#csv]";
                    OdbcDataAdapter adapter = new OdbcDataAdapter(oleComm);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds, fileName);
                    return ds.Tables[0];
                    odbcConn.Close();
                }
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
            }
            catch (Exception ex)
            {
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
                throw ex;
            }
        }

但是会发现如果源cvs中的列名存在不同的字符:{}/()/[] 会被转换为() 所以会出现无法匹配的问题。
时间: 2024-10-09 21:40:01

简单通用的访问CVS的方法的相关文章

简单的手机访问电脑文件方法,方便写完页面即使在移动端测试效果,不使用模拟器就能玩了

手机想测问电脑写好的页面文件时,这时部分人人会想到,拷内存卡,拷优盘,直接拷手机里(当然了 用模拟器的话这里就例外了),.....普通人一般用这些复制来复制去的方法,作为一个程序员,不自觉的就感觉,这好麻烦啊,或者说好low的操作方法啊....作为一个懂电脑的人,当然不能靠这种方法了,至少不能用数据先了,优盘了,内存卡了这些媒介来拷贝吧,有些人就想了,那我打开笔记本的蓝牙,wifi把文件传手机上,至少看起来没用最low的方法,但是这依然不符合我们的风格啊. 那还想怎么玩呢?直接访问电脑文件!说到

简单通用数据库访问代码

创建连接,执行语句,执行存储过程等等 using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace EXP_Data { public class C_SQL { #region 通用方法 // 数据连接

DataAccess通用数据库访问类,简单易用,功能强悍

以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展datarow转实体类,也可以搭配dapper.net实现更强大的功能. /// <summary> /// 通用数据库访问类,支持多种数据库,无直接依赖某个数据库组件 /// 作者:左文俊 /// 日期:2016-6-3 /// </summary> public class DataAc

Java通用数据访问层Fastser-DAL推荐

本着不重复造轮子的原则,基于mybatis.spring jdbc.hibernate等ORM的通用数据访问层,支持基于datasource的读写分离.主备自动切换和故障转移,支持简单的负载均衡. 源码地址:http://git.oschina.net/fastser/fastser-dal-all 特性: 基于mybatis.spring jdbc.hibernate等各大orm框架实现通用dal层功能,并可以与已有项目完全兼容.同时也可以在已经实现的orm框架之间任意切换,不需要对代码作任何

IIS开启伪静态后html静态页面无法访问的解决方法

IIS开启伪静态后,发现原本存在的html静态页面无法访问了,显示的404错误.网上查了下,是因为实现伪静态就是使用 URLRewriter 来映射后缀,会把asp等动态页面映射成html,但是原来存在的html静态页面也被定义的规则映射到其它页面了,所以找不到页面而无法访问. 有一个很简单的方法就是将html页面的后缀名改成htm,或者是把映射的规则改成映射为htm,总之就是把我们的伪静态页面和真正的静态页面分别用html和htm区分开来,但这只是治标不治本的方法. 最好的方法就是修改伪静态规

mysql+Apache+php环境配置中安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法

安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法     windows安装Apache,注册服务出现“(OS 5)拒绝访问. : AH00369: Failed to open the WinNT service manager..."错误 其实很简单,只要在C:\Windows\SysWOW64目录下找到CMD.EXE文件,在这个文件上右键以管理员身份运行即可 然后再次httpd.exe -k install 安装apache服务就成功了

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二) 一.虚拟主机别名介绍 虚拟主机别名就是为虚拟主机设置除了主域名以外的另一个或多个域名名字,这样就能实现用户访问的多个域名对应于同一个虚拟主机网站的功能.在生产环境中,以www.afeilinux.com域名的虚拟主机为例,为其增加一个别名afeilinux.com时,在该域名出现的网站内容和访问www.afeilinux.com得到的结果是一样的. 二.实施方法 第一种方法:Nginx虚拟主机的别名配置 更改wtf.conf配置文件

零基础学python-16.5 模块间全局变量的修改以及其他访问全局变量的方法

这一章节我们来讨论一下python里面模块间全局变量的修改以及其他访问全局变量的方法 1.模块间全局变量的修改 x=1#全局变量,其实就是模块里面所有的函数都可以使用 def test(): print(x) if __name__=='__main__': test() 上面的代码保存为test.py import test if __name__=='__main__': test.x=2 test.test() print(test.x) 上面的代码保存为test2.py 我们运行test

SOCKET简单爬虫实现代码和使用方法

抓取一个网页内容非常容易,常见的方式有curl.file_get_contents.socket以及文件操作函数file.fopen等. 下面使用SOCKET下的fsockopen()函数访问Web服务器最常用的80端口,通过获取80端口的数据,并进行分析,来模拟网络爬虫的工作方法. 1.实现SOCKET模拟网络爬虫主要包括以下几个部分: 使用SOCKET获取指定页的内容. 使用get_meta_tags()函数分析网页的META.TITLE等标签内容. 解析TITLE.链接或网页内容,可以使用