私は単純なFileUploadコントロールを使用してExcelファイルを選択し、データを取り出してdbに保存します。ファイルを選択した後にアップロードしようとすると、このエラーが発生します。しかし、ファイルパスは正しいです。asp.netで無効なファイルパスエラー
"FilePath"は有効なパスではありません。パス名が正しく、あなたが使用したファイル が
コードを存在するサーバーに に接続されていること に綴られていること を確認してくださいすることです:
<add key="OleDbConnection" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= FilePath ;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1""/>
string OleDbConnection =
ConfigurationManager.AppSettings["OleDbConnection"].Replace("FilePath",
fileUpload.PostedFile.FileName).Trim();
Excel.ApplicationClass xlApp = new Excel.ApplicationClass();
Excel.Workbooks xlWorkBooks = (Excel.Workbooks)xlApp.Workbooks;
Excel.Workbook wb = xlWorkBooks._Open(fileUpload.PostedFile.FileName, Type.Missing, false, Type.Missing, "", "", true, Excel.XlPlatform.xlWindows, "\t", true, false, Type.Missing, true);
string strSheetName = ((Excel.Worksheet)wb.Sheets[1]).Name.ToString();
xlWorkBooks.Close();
xlApp.Quit();
oledbCommand = new OleDbCommand();
oledbAdapter = new OleDbDataAdapter();
DataSet dsExcellData = new DataSet();
oledbConnection = new OleDbConnection(OleDbConnection);
oledbConnection.Open();
oledbCommand.Connection = oledbConnection;
oledbCommand.CommandText = "Select * from [" + strSheetName + "$]";
oledbAdapter.SelectCommand = oledbCommand;
oledbAdapter.Fill(dsExcellData);
return dsExcellData;
。 – James
また、AppSettings ["OleDbConnection"]プロパティの最後に.ToString()は必要ありません。常に値を文字列として返します。 – James
OleDbConnectionの値はどのようなものですか? – mattruma