string  strConn;
            string  FileName = "测评题库.xls";
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\\Inetpub\\wwwroot\\HRManage\\UpLoadFile\\" + FileName + ";Extended properties=Excel 5.0";
                                                                     
            string sList = "c";  //表名;
            
            OleDbConnection oConn = new OleDbConnection();
            oConn.ConnectionString = strConn;
            oConn.Open();            OleDbDataAdapter oCmd = new OleDbDataAdapter("SELECT * FROM [" + sList + "$]", oConn);
            DataSet oDS = new DataSet();
            oCmd.Fill(oDS);            foreach (DataRow oRow in oDS.Tables[0].Rows)
            {
                 //插入Theme表;
                 QContent = oRow["题目内容"].ToString();
                 QAnswer = oRow["答案"].ToString();  //这两列总能读出.都包含有汉字;
                 
                 QContent1 = oRow["选项C"].ToString();
                 QContent2 = oRow["选项D"].ToString();//这两列当值全为数字时为空,如果有汉字或者英文,也能读出.
            } 
            
           没读出时oRow["选项D"].ToString()的值为""           救命!!

解决方案 »

  1.   

    看看這個http://blog.csdn.net/zjcxc/archive/2003/12/29/20084.aspx
      

  2.   

    导入/导出Excel 
    --从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:
    /*===================================================================*/
    --如果接受数据导入的表已经存在
    insert into 表 select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)--如果导入数据并生成表
    select * into 表 from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
      

  3.   

    不行,我用了上面的方法还是读不出该列为纯数字的行.我EXCELE表的该列的格式设定为"常规"和"文本"都试过了.请高手们分析一下为什么?
      

  4.   

    --第一行為表頭;注意IMEX=1select * from 
    OpenDataSource('MICROSOFT.JET.OLEDB.4.0', 'Excel 8.0; HDR=1; IMEX=1; DATABASE=c:\test.xls')...[input$]
      

  5.   

    把excel中的数据全部拷贝到记事本,把那列的数据格式设置为文本,
    然后再重新拷贝回去保存,试试。