这个是因为你的E列第一行,是数字,通过odbc读取出来自动设定为Int32类型,所以读取第二行时存在“-”这个是string类型,所以读不到,只能为空改成这样就好了,加两个“”
  A    ,  B     ,   C    ,   D    , E  , F  , G  , H
2006-11,Referral,t0000936,eram0351,"0507",Mary,Asma,150
2006-10,PAP,t0001434,broo0032,32-416,,Rouleau,10

解决方案 »

  1.   

    maotin(liu),我试验了..还是为空值..我把
    2006-10,PAP,t0001434,broo0032,32-416,,Rouleau,10
    放第一行也不行
      

  2.   

    我刚刚做的测试:
    这个是CSV文件:
    A,B,C,D,E,F,G,H
    2006-11,Referral,t0000936,eram0351,"0507",Mary,Asma,150
    2006-10,PAP,t0001434,broo0032,32-416,,Rouleau,10
    这个是读取:
     string connStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=E:\开发\C#\CSV;Extensions=asc,csv,tab,txt;";
                    OdbcConnection conn = new OdbcConnection(connStr);
                    DataSet ds = new DataSet();
                    string sql = "SELECT * FROM 1.csv ";
                    OdbcDataAdapter odbcCSVDataAdapter = new OdbcDataAdapter(sql, conn);
                    odbcCSVDataAdapter.Fill(ds);
    可以读到。
      

  3.   

    统一成string类型应该可以读到;
    我试了一下,把第二行提到第一好像是不行,类型还是int32,
    加双引号把
      

  4.   

    你说的意思是我把E列全部加上"",还是加头一个?我这个csv里几千条数据..
    我刚试了下..加了""之后,反而也读不到了!怎么回事那?我特别奇怪...
      

  5.   

    如果是.txt文件可以上传..如果是csv的就不行..还是读不出来..