2016-04-19 2 views
0

* .XLSファイルからデータを読み込もうとしています。私はすべてのセル文字列を読むことができますが、はセル内の数字を読み取ることができません。私は成功していない.ToString()メソッドを使用しようとしました。データベースを取得するnullOleDbDataReader数値型の読み方は?

コード:

public xlsConverter(string excelFilePath, int numColumns) 
     { 
      string cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR=No;'", excelFilePath); 
      string queryStr = "SELECT * FROM [Sheet1$]"; 

      using (OleDbConnection connection = new OleDbConnection(cnnStr)) 
      { 
       OleDbCommand command = new OleDbCommand(queryStr, connection); 
       connection.Open(); 
       OleDbDataReader reader = command.ExecuteReader(); 

       while (reader.Read()) 
       { 
        for(int i = 0; i <= numColumns; i++) 
        { 
         cleanedString.AppendFormat("{0}{1}", (reader[i].ToString()), "|"); 
        } 
        cleanedString.AppendLine(); 
       } 

       reader.Close(); 
      } 
     } 

cleanedString.AppendFormat(「行[{0}]、データ型[{1}]、文字列[{2}]、 カラム[{3}] | - | "、カウンタ、(reader [i])GetType()、 reader [i] .ToString()、i);

行の[98]、データ型[System.DBNull]、文字列[]は、列[4] | - |:

を生成し

列4は、例えば、混合文字列と数字が含まれています:「GetIntで、GetValueメソッド、パース、 '鋳造'、ToStringメソッドを使用してみました1300、2341、5000、4000(DED)、1243

()など "、nullはnullです!誰でも正しい方向に私を導きたいのですか?

サンプルXLSファイル:

https://github.com/abflett/adamflett_ca

https://github.com/abflett/adamflett_ca/blob/master/sample.xls

+0

あなたが特定されている場合、それはちょうどあなたが希望する型にキャスト数、です。例えば(int)reader [i]; – detellda

+0

それを試してみて、cleanedString.AppendFormat( "[{0}]行、[{1}]データ型、[2]列、{3}] | - |"、カウンタ、(リーダー[i])。GetType()、reader [i] .ToString()、i); System.DBNullは、数値データ型を持つセルで返されました。私はコマンド、クエリまたは接続文字列でデータを失っている可能性がありますか? – abflett

+0

.xlsファイルからサンプルデータをいくつか与えることができますか? – detellda

答えて

0

は、いくつかの掘削を取ったが、簡単な修正されてしまいました。

接続文字列が問題でした。

string cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0'", excelFilePath); 

ImportMixedTypes =テキスト; = 0 TypeGuessRows

^が追加されました!

YouTubeのビデオは、私はでそれを見つけた: https://www.youtube.com/watch?v=jhPp_Hz54BU

とすでにstackoverflowの時にここに返事: Help with a OleDB connection string for excel files

関連する問題