Синтаксическая ошибка (отсутствует оператор) в VB
Пытаясь сделать поисковую систему базы данных ms access, я получал эту ошибку весь день. я опубликую свой код и журнал ошибок
Imports System.Data.OleDb Public Class Form1 Dim provider As String Dim dataFile As String Dim connString As String Public myConnection As OleDbConnection = New OleDbConnection Public dr As OleDbDataReader Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" dataFile = "C:\Users\CADPC\Documents\Parts# Database.mdb" connString = provider & dataFile myConnection.ConnectionString = connString End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click myConnection.Open() oldpartText.Clear() newpartText.Clear() descriptionText.Clear() materialText.Clear() Dim str As String str = "SELECT * FROM Cnc_Parts_List WHERE Old Part# = '" & inputText.Text & "'" Dim cmd As OleDbCommand cmd = New OleDbCommand(str, myConnection) dr = cmd.ExecuteReader() While dr.Read() oldpartText.Text = dr("Old Part#").ToString newpartText.Text = dr("New Part#").ToString descriptionText.Text = dr("Description").ToString materialText.Text = dr("Material").ToString End While myConnection.Close() End Sub End Class
Сообщение об ошибке:
Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><traceidentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled<description>Unhandled exception<appdomain>WindowsApp1.exe<exception><exceptiontype>System.Data.OleDb.OleDbException, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089<message>Syntax error (missing operator) in query expression 'Old Part# = '001-200''.<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.ExecuteCommand(CommandBehavior behavior, 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.ExecuteReader() at WindowsApp1.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\CADPC\AppData\Local\Temporary Projects\WindowsApp1\Form1.vb:line 28 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.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 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at WindowsApp1.My.MyApplication.Main(String[] Args) in :line 81<exceptionstring>System.Data.OleDb.OleDbException (0x80040E14): Syntax error (missing operator) in query expression 'Old Part# = '001-200''. 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.ExecuteCommand(CommandBehavior behavior, 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.ExecuteReader() at WindowsApp1.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\CADPC\AppData\Local\Temporary Projects\WindowsApp1\Form1.vb:line 28 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.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 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at WindowsApp1.My.MyApplication.Main(String[] Args) in :line 81
Что я уже пробовал:
я гуглил эту проблему в течение нескольких часов, любая помощь была бы признательна
Member 13204422
получив эту ошибку, забыл поставить в первом посте
Системы.Данных.Oledb. OleDbException: 'синтаксическая ошибка (отсутствующий оператор) в выражении запроса 'старая часть# = '001-200".'
[no name]
Вам нужно заключить ваши нечетные именованные имена таблиц в скобки.