Member 10469183 Ответов: 1

Как слить из нескольких полей базы данных, доступ к данным одного столбца datagridview в ФО VB.NET используя набор данных


Private Sub FLEX1_LOAD()
      DataGridView1.Rows.Clear() 
      Dim strsql As String
      Dim rs2 As ADODB.Recordset
      strsql = "select * from voterlist where AREAID='" & Trim(lblAreaid.Text) & "'"
      rs2 = New ADODB.Recordset
      Call dbconnect2()
      rs2.Open(strsql,conne2,ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockPessimistic)
      If rs2.RecordCount > 0 Then
       rs2.MoveFirst()
       For I = 0 To rs2.RecordCount - 1
          DataGridView1.Rows.Add(1)
          DataGridView1.Rows(J).Cells(0).Value = J + 1
          DataGridView1.Rows(J).Cells(1).Value =rs2.Fields("ID").Value
          DataGridView1.Rows(J).Cells(2).Value = rs2.Fields("NAM").Value & " " & rs2.Fields("SURNAME").Value & "/" & rs2.Fields("RTYPE").Value & "-" & rs2.Fields("RNAME").Value & " " & rs2.Fields("RSURNAME").Value
          DataGridView1.Rows(J).Cells(3).Value = rs2.Fields("AGE").Value
          J = J + 1
          rs2.MoveNext()
       Next
      End If
      rs2.Close()
      rs2 = Nothing
      conne2.Close()
End Sub


Что я уже пробовал:

Как преобразовать набор записей в набор данных, потому что в то время как еще 200 данных загружаются в datagridview, который после datagrid был очень медленным, поэтому я хочу, чтобы мой код изменился, чтобы загрузить datagrid по набору данных, но я не знаю кода набора данных, как объединить несколько полей данных базы данных в один столбец в datagrid, поэтому, пожалуйста, помогите мне...

1 Ответов

Рейтинг:
0

Wendelius

Если я правильно понял вопрос, измените, например, запрос, чтобы вернуть сцепленное поле. Например

SELECT NAM & ' ' & SURNAME, RNAME ...
FROM ....

В качестве побочного замечания я бы рекомендовал отказаться от ADODB и использовать Класса Oledbconnection (Системы.Данных.Для oledb)[^] вместо. Кроме того, вы можете загрузить данные в Класс DataTable (System. Data)[^] что, вероятно, значительно облегчило бы обработку данных.

Кроме того, вы, кажется, объединяете значения из объектов пользовательского интерфейса непосредственно в инструкцию SQL. Это оставляет вас открытыми для SQL-инъекций, поэтому это должно быть исправлено. С OLEDB вы можете использовать Класса Oledbparameter (Системы.Данных.Для oledb)[^]


Member 10469183

Спасибо, он работает методом oleDb, но тут опять вопрос - если результат oledb ' SEX '= 1, то как автоматически просмотреть в datagrid ' SEX ' = " M " в момент загрузки datagridview.

Wendelius

Если вы хотите сделать форматирование в сетке, взгляните на Практическое руководство.Событие CellFormatting (Системы.Окна.Формы)[^]