* .XLSファイルからデータを読み込もうとしています。私はすべてのセル文字列を読むことができますが、はセル内の数字を読み取ることができません。私は成功していない.ToString()メソッドを使用しようとしました。データベースを取得するnull。OleDbDataReader数値型の読み方は?
コード:
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
あなたが特定されている場合、それはちょうどあなたが希望する型にキャスト数、です。例えば(int)reader [i]; – detellda
それを試してみて、cleanedString.AppendFormat( "[{0}]行、[{1}]データ型、[2]列、{3}] | - |"、カウンタ、(リーダー[i])。GetType()、reader [i] .ToString()、i); System.DBNullは、数値データ型を持つセルで返されました。私はコマンド、クエリまたは接続文字列でデータを失っている可能性がありますか? – abflett
.xlsファイルからサンプルデータをいくつか与えることができますか? – detellda