日期:2014-05-20  浏览次数:20888 次

C#导入EXCEL时,在同一行记录中,有某些记录无法读取到....
C#导入EXCEL时,在同一行记录中,有某些记录无法读取到....
代码如下:
string   strCon=@ "   Provider   =   Microsoft.Jet.OLEDB.4.0   ;   Data   Source   = "+myfname.ToString()+ ";Extended   Properties=Excel   8.0 ";
OleDbConnection   myconn   =   new   OleDbConnection(strCon);

myconn.Open();
OleDbCommand   ss   =   new   OleDbCommand( " ",myconn);
ss.CommandType   =   CommandType.Text;
ss.CommandText=@ "SELECT   *   from   [Sheet1$] ";
OleDbDataReader   myReader=ss.ExecuteReader();

while(myReader.Read())
{
string   sqlcom= "INSERT   INTO   SET_BOM   (SIZE,BOM_CON   )   VALUES   ( "+myReader[1].ToString().Trim()+@ " ', "+myReader[2].ToString().Trim()+@ " ') ";
}

myReader[2]的数据经常性丢失,但是不是所有的表格都会丢失.....
各路英雄解惑.

------解决方案--------------------
连接字符串最后的改成 'Excel 8.0;HDR=YES;IMEX=1 '

原因是ms的问题...如果没这些...读取时候就跟第一行的类型...

比如第一行是文字,后边的行有数字,就读不出来了.