一直使用的下面程序读取,有次不小心改了区域,导致下面读取失败,无法通过逗号分隔,然后就把区域什么的都换成中文简体,包括区域设置里面自定义的列表分隔符也改成逗号,但是仍是不能按照逗号分隔正确读取,用excel打开没有任何问题,大家有什么好办法?
            string strConn;
            OleDbConnection objMyOleDbConnection = new OleDbConnection();
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Text;HDR=No\";";
            //strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=d:\data\;Extensions=asc,csv,tab,txt;";
            strConn = strConn + "Data Source=" + textBox1.Text .Trim ();
            objMyOleDbConnection.ConnectionString = strConn;
            objMyOleDbConnection.Open();
            OleDbDataAdapter objMyDataAdapter = new OleDbDataAdapter("SELECT * FROM test.csv ", objMyOleDbConnection);
            DataSet objMyDataSet = new DataSet();
            objMyDataAdapter.Fill(objMyDataSet, "TempTable");

解决方案 »

  1.   

    不知道你是不是用excel打开修改的,如果是,那么这个CSV文件格式已经变了,具体的参见http://baike.baidu.com/view/468993.htm,
    CSV文件一定要用记事本打开修改,当初我做通讯录导入导出的时候也遇到了这个问题,或者,你用txt来读这个文件。不知道对你有没有帮助
      

  2.   

    该csv没有进行任何修改,换台电脑同样程序就可以导入了,应该是这台电脑问题。如果在csv同层目录中加入Schema.ini 里面内容如下:
    [test.csv]
    Format=CSVDelimited即可以正常识别该文件。请问如何可以不使用scheme.ini ,这样使用起来相当麻烦,而且还得事先写好要导入的csv文件名称。该台机器语系、区域全部都是中文,会不会注册表哪些地方限定死读取csv的format格式?
      

  3.   

    所有csv都不识别。用txt做一个csv也不识别