Как я могу найти имя (арабский)
у меня есть база данных DB2 я подключаюсь к ней с помощью vb.net все наперстки в порядке
но когда я хочу найти сотрудника по фамилии это не работа
вот код, он работает, если gname.текст ясно показывают, все работник
Что я уже пробовал:
Dim s As String = "SELECT GEMPNO, GNAME, GTERM FROM qgpl.testz where gname like '% " & gname.Text & " %' ORDER BY RNAME " dim selectCMD As OdbcCommand = New OdbcCommand(s, MyODBCConnection) Dim Adapter As OdbcDataAdapter = New OdbcDataAdapter(selectCMD.CommandText, MyODBCConnection) Dim ds As DataSet = New DataSet ds.Clear() Adapter.Fill(ds, "MyTable") Dim Row As DataRow Dim listItem1 As New ListViewItem() For Each Row In ds.Tables(0).Rows If Not IsDBNull(Row.Item(0)) Then listItem1 = New ListViewItem(Row.Item(0).trim.ToString) Else listItem1 = New ListViewItem("") End If If Not IsDBNull(Row.Item(1)) Then listItem1.SubItems.Add(Row.Item(1).ToString.Trim) Else listItem1.SubItems.Add("") End If If Not IsDBNull(Row.Item(2)) Then listItem1.SubItems.Add(Row.Item(2).ToString) Else listItem1.SubItems.Add("") End If ListView1.Items.Add(listItem1) Next Catch ex As Exception End Try For i As Integer = 0 To ListView1.Items.Count - 1 If ListView1.Items(i).SubItems(2).Text <> 0 Then ListView1.Items(i).BackColor = Color.LightBlue Else ListView1.Items(i).BackColor = Color.White End If Next MyODBCConnection.Close() MyODBCConnection.Dispose()
CHill60
Я считаю, что вы должны явно сказать DB2, что эта строка является UNICODE. Попробуй
Dim s As String = "SELECT GEMPNO, GNAME, GTERM FROM qgpl.testz where gname like u&@gname ORDER BY RNAME " ... selectCMD.Parameters.AddWithValue("@gname", "%" + gname.Text + "%") ...
Если это не сработает, то эта ссылка может оказаться полезной
Понимание преобразования символов универсальной базы данных DB2[^]
zamzam_301
Большое спасибо
это не работает
CHill60
Ну что ж, я попробовал. К сожалению, у меня нет никакого доступа к DB2, чтобы поиграть, поэтому я опубликовал это только в качестве комментария.
Однако эта ссылка может дать вам некоторое представление.
NotPolitcallyCorrect
"это не работает" - это не описание какой-либо проблемы.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]
Maciej Los
Звучит как ответ на мой вопрос.