0
我已經嘗試了很多不同的路徑,可以構建一個頁面,允許用戶選擇一個excel文件,然後從該文件讀取數據。到目前爲止,我所得到的只是錯誤。嘗試從VB.Net中的Excel讀取數據時出錯
我最近的錯誤是:「無法更新。數據庫或對象是隻讀的。」
這裏是我的代碼:
Protected Sub Upload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Upload.Click
If (testFile.HasFile) Then
Dim ds As DataSet
Dim strFileType As String = System.IO.Path.GetExtension(testFile.FileName).ToString().ToLower()
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
Dim MyConnection As System.Data.OleDb.OleDbConnection
MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & testFile.FileName & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2")
' Select the data from Sheet1 ([in-house$]) of the workbook.
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
ds = New System.Data.DataSet
MyCommand.Fill(ds) - __This is where the error points.__
grvExcelData.DataSource = ds.Tables(0)
End If
End Sub
爲什麼這被拋出任何想法?我現在只是試圖將數據輸出到一個gridview。後來我需要遍歷每個單元格,但我一次只嘗試一步。
此外,如果有更好的方法來做到這一點,我完全接受它!
謝謝!
感謝lenghty命名空間前綴!我做了你建議的更改,但我仍然收到同樣的錯誤:「無法更新,數據庫或對象是隻讀的。」在「MyCommand.Fill(ds)」行? – Blunderfest 2013-03-15 18:43:05
對不起,我現在看到你的testFile可能是FileUpload類型的全局變量。對?在這種情況下,您是否保存過發佈的文件?請參閱MSDN上的[FileUpload.HasFile](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.fileupload.hasfile.aspx)上的示例 – Steve 2013-03-15 18:47:17
我沒有聲明testFile作爲全局變量,它是用戶將文件添加到其中的輸入字段。我需要保存發佈的文件嗎?我正在使用的服務器不允許寫入權限,所以我試圖避免這種情況。我在這裏嘗試了一種不同的方法:[以前的問題](http://stackoverflow.com/questions/15412936/cant-find-referenced-sheet-in-excel-file-while-trying-to-read-from-a -webpage-in/15413972?noredirect = 1#15413972)並沒有得到任何地方,這就是爲什麼我嘗試了不同的方法。 – Blunderfest 2013-03-15 18:53:10