У меня есть таблица SQLite со столбцом, содержащим записи, в которых уже есть двойные символы в одинарных кавычках, чтобы избежать их.Пример:
MD Prince George''s
Я хочу запросить эту таблицу, чтобы узнать, смогу ли я найти вышеуказанную запись.Этот код показывает небольшую тестовую программу, которая пытается сделать это:
Private Sub TEST2_Click(sender As Object, e As EventArgs) Handles TEST2.Click
Dim sql() As String = {"LIKE 'MD Prince George%';",
"= 'MD Prince George''s';",
"= 'MD Prince George's';"}
Dim ThisTable As New List(Of DataRow)
For a As Integer = 0 To sql.Count - 1
Try
Connect(2) ' Getting my connection
Using tr As SQLiteTransaction = conn.BeginTransaction
Using cmd As New SQLiteCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT * FROM `counties` WHERE `STATE_COUNTY` " & sql(a)
Using da As New SQLiteDataAdapter(cmd)
Dim dt As New DataTable
da.Fill(dt)
If dt.Rows.Count > 0 Then
ThisTable.Add(dt.Rows(0))
End If
End Using
End Using
tr.Commit()
End Using
Catch ex As Exception
Debug.WriteLine(ex.Message)
Finally
conn.Close()
End Try
Debug.WriteLine("Result(" & a & ": " & sql(a) & ") gives ThisTable.Count=" & ThisTable.Count)
Next
End Sub
Результаты:
Result(0: LIKE 'MD Prince George%';) gives ThisTable.Count=1
Result(1: = 'MD Prince George''s';) gives ThisTable.Count=1
SQLite error (1): near "s": syntax error
Exception thrown: 'System.Data.SQLite.SQLiteException' in System.Data.SQLite.dll
SQL logic error
near "s": syntax error
Result(2: = 'MD Prince George's';) gives ThisTable.Count=1
Это показывает, что первое утверждение было найдено: я включил его, чтобы доказать этотакая запись в таблице.Второе утверждение, пытающееся сопоставить 2 одинарные кавычки с 2 одинарными, не возвращает результата.Третье утверждение, пытаясь сопоставить 2 одинарные кавычки с 1 одинарной, возвращает ошибку.
Мой вопрос: каким должно быть мое утверждение select, чтобы найти всю эту единственную запись или другие записи, которые могут иметь 2одинарные кавычки в них?Нет, я не хочу найти только% ''%.