Я разрабатываю CRUD в vb.net, используя базу данных MySQL с DataGridView, и при вставке серийных номеров у некоторых есть ', который конфликтует с MySQL. Что мне нужно, так это: программа для проверки наличия ' в строке и добавления \ позади, если ее нет
If Me.DataGridView1.Rows.Count = 0 OrElse Me.DataGridView1.SelectedRows.Count = 0 Then
Exit Sub
End If
Dim res As DialogResult = MsgBox("EDIT product?", MessageBoxButtons.YesNo)
If res <> DialogResult.Yes Then Exit Sub
For Each row As DataGridViewRow In DataGridView1.SelectedRows
frm2.Label10.Text = row.Cells(0).Value
я пробовал, но это не работает ` If row.Cells(0).Value .Contains("'") = True Then row.Cells(0).Value.Replace("'", "\'") End `
ЕСЛИ не нужен, замените безоговорочно.
Если вы используете параметры SQL для передачи значений в базу данных, проблема исчезнет.
Я подозреваю, что Эндрю Мортон прав. Нет причин, по которым любое текстовое значение должно быть проблемой, если только вы на самом деле не сохраняете данные неправильно. Вы можете найти мой взгляд на то, как это сделать правильно здесь.
я попытался реализовать его в msgBox, и это сработало так: TextBox7.Text.Replace("'", "\'") спасибо за помощь
@JoãoFernandes Replace
- это функция, поэтому вам нужно присвоить ее результат переменной, например. Dim newString = oldString.Replace("x", "y")
. Но вы все равно должны использовать параметры SQL вместо этого.
Это шаблон,
Dim s As String = "a ' in the string and add a \ behind if it doesn't have it"
If s.Contains("'") Then
s = s.Replace("'", "'\")
End If
Заменяет все вхождения ' .