2011-03-10 18 views
0

我想用VB解析ASP.NET中用戶提交的csv文件。這裏是我的功能:VB.net中的CSV文件和OLEDB - 無信息例外

Public Function getData() As DataSet 
     Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetTempPath() + ";Extended Properties=""Text;HDR=No;FMT=Delimited""" 

     Dim cn As New OleDbConnection(conn) 
     Dim cmd As New OleDbCommand("SELECT * FROM " + sourceFile, cn) 
     Dim da As New OleDbDataAdapter(cmd) 

     cn.Open() 

     Dim dt As New DataSet() 

     da.Fill(dt) 

     cn.Close() 
     Return dt 
    End Function 

我得到的錯誤是:

System.Data.OleDb.OleDbException was unhandled by user code 

錯誤碼= -2147467259 消息= IErrorInfo.GetDescription失敗,E_FAIL(0x80004005的)。 源= System.Data 堆棧跟蹤: 在System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult小時) 在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,對象&的ExecuteReuslt) 在System.Data.OleDb .OleDbCommand.ExecuteCommandText(對象&的ExecuteReuslt) 在System.Data.OleDb.OleDbCommand.ExecuteCommand(的CommandBehavior行爲,對象&的ExecuteReuslt) 在System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(的CommandBehavior行爲,字符串方法) 在系統。 Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior行爲) at System.Data.OleDb.OleDbCommand.Sys System.Data.Common.DbDataAdapter.FillInternal(DataSet數據集,DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行爲) System.Data.Data.IDbCommand.ExecuteReader(CommandBehavior行爲) 。 Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行爲)位於SuperSMITH.CSVReader.getData()的System.Data.Common.DbDataAdapter.Fill(DataSet數據集) 處的 。在C:\ Projects \ Allied \ tools \ Step2.aspx.vb中:位於C:\ Projects \ Allied \ App_Code \ CSVReader.vb:line 29 at tools_Step2.uplFile_FileUploadComplete(Object sender,FileUploadCompleteEventArgs e):Line 58 at DevExpress。 Web.ASPxUploadControl.ASPxUploadControl.OnFileUploadComplete(FileUploadCompleteEventArgs e) 在DevExpress.Web.ASPxUploadControl.ASPxUploadControl.RaiseFileUploadComplete(UploadedFile的UploadedFile的,字符串& ERRORTEXT,字符串& callbackData) 在DevExpress.Web.ASPxUploadControl.ASPxUploadControl.Validate() 的InnerException:

誤差在da.fill(dt)上來線。

有什麼建議嗎?

回答

0

每個出現的搜索結果都表明,必須在CSV文件或SELECT聲明中使用保留關鍵字。 sourceFile的價值是多少?

+0

這是「C:\ Documents and Settings \ greg \ Local Settings \ Temp \ tmpF61.tmp」 – 2011-03-10 20:55:05

+0

我應該從上傳表單中添加它。我認爲我需要另闢蹊徑,使用其他類型的適配器。 – 2011-03-14 02:07:01