アプリケーションには、複数のタブを持つウィザードがあります。最初のタブでは、参照ボタンを使用して Excel シートのパスを選択できます。Excel を選択すると、Excel ファイルの内容がデータセットに読み込まれます (DATE フィールドを含むすべてが正しい形式で)。次に、[次へ] をクリックして、次のウィザード タブに進みます。
ただし、ファイルが開いている場合、プログラムはExcelをロードし、今回はすべての日付フィールドを一般形式でロードします。例: 2006 年 6 月 22 日 38890
Excel が開いているか、別の形式で使用されているかを確認しようとしています。
bool IsFilebeingUsed(FileInfo file)
{
FileStream stream = null;
try
{
stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.None);
}
catch (IOException)
{
return true;
}
finally
{
if (stream != null)
stream.Close();
}
return false;
}
エクセルを読み込もうとしている方法は次のとおりです。
string sql = string.Format("SELECT * FROM [{0}]", excelSheetName);
internal OleDbCommand command = new OleDbCommand();
command.CommandText = sql;
OleDbDataReader oleRdr = command.ExecuteReader();
DataTable dataTable = new DataTable();
datatable.TableName = excelSheetName;
dataTable.Load(oleRdr);
アプリケーションまたはコードの何が問題なのか誰にもわかりますか?