0

以下のコードを実行しようとすると、次のエラーが発生します。渡す SQL 文字列も追加しました。私は何が欠けていますか?

エラー:

クエリ式 'TOURID = 25e5eed3-ea84-4c30-a660-2c880253da60' の構文エラー (演算子の欠落)

私の質問、

DELETE * FROM TOURS WHERE TOURID = 25e5eed3-ea84-4c30-a660-2c880253da60;

私のコード、

Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\_Development\Data\filename.accdb;Persist Security Info=False;"
Dim DBConnection As New System.Data.OleDb.OleDbConnection(connectionString)
Try
    DBConnection .Open()
    Dim cmd As New System.Data.OleDb.OleDbCommand(sql, DBConnection )
    Dim sqlAdapterTOURS As New System.Data.OleDb.OleDbDataAdapter(cmd)
    cmd.CommandType = CommandType.Text
    cmd.ExecuteNonQuery()
Catch ex As Exception
    MessageBox.Show(ex.Message)
Finally
    DBConnection .Close()
End Try
4

4 に答える 4

5

次のように GUIDS を使用する場合は、引用する必要があります。

DELETE * 
FROM TOURS 
WHERE TOURID = '25e5eed3-ea84-4c30-a660-2c880253da60';
于 2010-03-05T19:21:00.073 に答える
3

次のように、値を一重引用符で囲む必要があります。

DELETE * FROM TOURS WHERE TOURID = '25e5eed3-ea84-4c30-a660-2c880253da60';
于 2010-03-05T19:21:08.070 に答える
1

推測: GUID タイプのエントリは引用符で囲む必要があります。

DELETE FROM TOURS WHERE TOURID = '25e5eed3-ea84-4c30-a660-2c880253da60'
于 2010-03-05T19:21:47.103 に答える
1

Access/Jet/ACE はあまり GUID フレンドリーではありません。マイケル・カプランはこれについて何年も前に書いています:

レプリケーションと GUID、良い点、悪い点、醜い点

コンテキストによっては、GUID を操作するために VBA 関数、つまり StringFromGUID() および GUIDFromString() を使用する必要がある場合があります。ただし、SQL コンテキストで何をしなければならないかは正確にはわかりません。2 つの GUID フィールド間で結合を行うことができないことは知っています (代わりに WHERE 句を使用するなど、暗黙的な結合を使用する必要があります)。

于 2010-03-05T21:02:06.423 に答える