1

oledb の例外が処理されませんでした。なぜそれが起こっているのかわかりません。

i 太字とイタリック体のエラー コード

例外は次のように表示されます クエリ式 'Product Name=''Chair '' に構文エラー (演算子がありません)。

ありがとう

System.Data.OleDb をインポートします

パブリック クラス Form1

    '真実を宣言する

    暗い itemName を文字列として
    Dim itememprice、average、rows、index、totalPrice
    Dim foundItem をブール値として
    Dim conactionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Education\BIT\Assainment\L1S2\VB\Assesment 2\Stock.accdb"
    Dim リーダー As OleDbDataReader
    Dim olDataConnection を新しい OleDbConnection(conectionString) として
    Dim olCommand As OleDbCommand


    Private Sub Form1_Load(ByVal sender As System.Object, e As EventArgs) MyBase.Load を処理します
        'コンボボックスにデータをロード

        総価格 = 0
        行 = 0

        '接続を開始します
        olDataConnection.Open()
        olCommand = New OleDbCommand("SELECT * FROM ストック", olDataConnection)
        リーダー = olCommand.ExecuteReader()
        ながら (reader.Read())
            comDataStock.Items.Add(DirectCast(reader("Product Name"), String) & " -Rs. " & DirectCast(reader("Price"), Integer) & " /= ")
            合計価格 = 合計価格 + DirectCast(reader("価格"), 整数)
            行 = 行 + 1
        終了

        試す
            平均 = 総価格 / 行
            lblAverResult.Text = "ルピー" & average.ToString() & " /="
        ex を例外としてキャッチ
            MessageBox.Show("問題があります", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Information)
        エンドトライ
        olDataConnection.Close()

    サブ終了

    Private Sub btnDelete_Click(sender As Object, e As EventArgs) ハンドル btnDelete.Click
        olDataConnection.Open()
        olCommand = New OleDbCommand("DELETE FROM Stock WHERE Product Name=''" & comDataStock.SelectedItem.ToString().Split("-").GetValue(0).ToString() & "'", olDataConnection)
       リーダー = olCommand.ExecuteReader()
        olDataConnection.Close()
        comDataStock.Items.Clear()
        総価格 = 0
        行 = 0

         olDataConnection.Open()
        olCommand = (New OleDbCommand("SELECT FROM Stock ", olDataConnection))
        リーダー = olCommand.ExecuteReader()

        ながら (reader.Read())
            comDataStock.Items.Add(DirectCast(reader("Price"), String) & " -Rs. " & DirectCast(reader("Price"), Integer) & " /= ")
            合計価格 = 合計価格 + DirectCast(reader("価格"), 整数)
            行 = 行 + 1

        終了

        試す
            平均 = 総価格 / 行
            lblAverResult.Text = " Rs. " & average.ToString() & " /="
        ex を例外としてキャッチ
            MessageBox.Show(ex.ToString())
        エンドトライ
        olDataConnection.Close()

    サブ終了
クラス終了
4

1 に答える 1

2

のように名前にスペースが含まれるフィールドがある場合は、Product Nameその名前を角括弧で囲む必要があります。

olCommand = New OleDbCommand("DELETE FROM Stock WHERE [Product Name]='" & comDataStock.SelectedItem.ToString().Split("-").GetValue(0).ToString() & "'", olDataConnection)
于 2013-10-21T17:43:29.517 に答える