-1

私はここのチュートリアルに従いました:http://codehill.com/2009/01/reading-excel-2003-and-2007-files-using-oledb/

しかし、私はいくつかの列だけを表示したいので、クエリを編集して

"select F1,F3,F6 from [" + worksheetName + "$]", con);

しかし、私はこのエラーをオンラインで受け取りました

cmd.Fill(excelDataSet);


System.Data.OleDb.OleDbException was unhandled
  Message=No value given for one or more required parameters.
  Source=Microsoft Access Database Engine
  ErrorCode=-2147217904
  StackTrace:
       at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
       at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
       at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
       at ExcelReader.mainForm.GetWorksheet(String worksheetName) in D:\PLN\ExcelReader\ExcelReader\Main.cs:line 112
       at ExcelReader.mainForm.sheetsToolStripComboBox_SelectedIndexChanged(Object sender, EventArgs e) in D:\PLN\ExcelReader\ExcelReader\Main.cs:line 125
       at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
       at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
       at ExcelReader.mainForm.openToolStripButton_Click(Object sender, EventArgs e) in D:\PLN\ExcelReader\ExcelReader\Main.cs:line 51
       at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
       at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ToolStrip.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at ExcelReader.Program.Main() in D:\PLN\ExcelReader\ExcelReader\Program.cs:line 17
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

何か案が?

4

1 に答える 1

1

ダミー フィールド名F1などF2は、列のヘッダー行に値がない場合、または接続文字列に含まれる場合にのみ使用されます。HDR=No

ヘッダー行に値がありHDR=Yes、接続文字列にある場合は、次のようなダミーのフィールド名ではなく、実際の列タイトルを使用する必要がありますF1

于 2012-09-24T01:15:55.347 に答える