oledb exception was unhandled

I am getting the oledb exception was unhandled and i cant find why it is happening can anyone note it for me

i BOLD and Italic the error code

and the exception shows as follows Syntax error (missing operator) in query expression 'Product Name=''Chair ''.

thanks

Imports System.Data.OleDb

Public Class Form1

    'declare the veriables

    Dim itemName As String
    Dim itemprice, average, rows, index, totalPrice
    Dim foundItem As Boolean
    Dim conectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Education\BIT\Assainment\L1S2\VB\Assesment 2\Stock.accdb"
    Dim reader As OleDbDataReader
    Dim olDataConnection As New OleDbConnection(conectionString)
    Dim olCommand As OleDbCommand


    Private Sub Form1_Load(ByVal sender As System.Object, e As EventArgs) Handles MyBase.Load
        'loding data to the combo box

        totalPrice = 0
        rows = 0

        'start the connection
        olDataConnection.Open()
        olCommand = New OleDbCommand("SELECT * FROM Stock", olDataConnection)
        reader = olCommand.ExecuteReader()
        While (reader.Read())
            comDataStock.Items.Add(DirectCast(reader("Product Name"), String) & " -Rs. " & DirectCast(reader("Price"), Integer) & " /= ")
            totalPrice = totalPrice + DirectCast(reader("Price"), Integer)
            rows = rows + 1
        End While

        Try
            average = totalPrice / rows
            lblAverResult.Text = "Rs. " & average.ToString() & " /="
        Catch ex As Exception
            MessageBox.Show("Somethingg Wrong ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
        olDataConnection.Close()

    End Sub

    Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
        olDataConnection.Open()
        olCommand = New OleDbCommand("DELETE FROM Stock WHERE Product Name=''" & comDataStock.SelectedItem.ToString().Split("-").GetValue(0).ToString() & "'", olDataConnection)
        reader = olCommand.ExecuteReader()
        olDataConnection.Close()
        comDataStock.Items.Clear()
        totalPrice = 0
        rows = 0

         olDataConnection.Open()
        olCommand = (New OleDbCommand("SELECT FROM Stock ", olDataConnection))
        reader = olCommand.ExecuteReader()

        While (reader.Read())
            comDataStock.Items.Add(DirectCast(reader("Price"), String) & " -Rs. " & DirectCast(reader("Price"), Integer) & " /= ")
            totalPrice = totalPrice + DirectCast(reader("Price"), Integer)
            rows = rows + 1

        End While

        Try
            average = totalPrice / rows
            lblAverResult.Text = " Rs. " & average.ToString() & " /="
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try
        olDataConnection.Close()

    End Sub
End Class

Upvotes: 1

Views: 2510

Answers (1)

HansUp
HansUp

Reputation: 97101

When you have a field whose name includes a space, such as Product Name, you must enclose that name in square brackets.

olCommand = New OleDbCommand("DELETE FROM Stock WHERE [Product Name]='" & comDataStock.SelectedItem.ToString().Split("-").GetValue(0).ToString() & "'", olDataConnection)

Upvotes: 2

Related Questions