Чтение нескольких строк данных в одно текстовое поле с помощью datareader.
Я не могу понять, что я делаю не так. Я пытаюсь прочитать несколько строк данных в одно и то же текстовое поле. Я использую Datareader. позвольте мне объяснить, что я пытаюсь сделать.
Я создаю раздел заметок/комментариев клиентов в своем приложении. Я хочу хранить заметки/комментарии о разговоре с клиентами. Я храню их вместе с датой и временем добавления комментария. Это хранится в базе данных Access. Я хочу получить данные и отобразить их в winform. Я выбрал многострочное текстовое поле. Я могу получить данные для отображения в текстовом поле, но он отображает только последнюю запись клиента, который имеет несколько записей.
Я не уверен, что это возможно, есть ли лучший способ или что я упускаю.
Что я уже пробовал:
Таблица CustomerNotes:
CusNumber Дата/Время Комментарий
1350 3/29/2019 8:52:42 утра клиент хочет вернуть деньги.
1376 23.08.2018 10:52:42 PM они были недовольны продуктом.
1350 4/4/2019 2:43:11 вечера мы выдали возврат денег.
Результат текстового поля, который я хочу:
29.03.2019 8:52:42
Клиент хочет вернуть деньги.
4/4/2019 2:43:11 вечера
Мы оформили возврат денег.
Мой код:
Try Dim command = New OleDb.OleDbCommand Call connection() Dim drCustomerNotes As OleDbDataReader = Nothing With cm .Connection = con .CommandText = "SELECT * FROM tblCusNotes WHERE fldCusNotesAcctNo = @CusAcctNo" Try .Parameters.Clear() .Parameters.Add("@CusAcctNo", OleDbType.Integer).Value = tbCusAcctNo.Text Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) End Try drCustomerNotes = .ExecuteReader End With While drCustomerNotes.Read() CusNotesTemp = drCustomerNotes("fldCusNotesDateEntered").ToString CusNotesTemp = CusNotesTemp + vbCrLf + drCustomerNotes("fldCusNotesText").ToString + vbCrLf tbCusNotes.Text = CusNotesTemp CusNotesfound = True End While 'If CusNotesfound = True Then MsgBox("Cus Notes Info Found.", MsgBoxStyle.Information) If CusNotesfound = False Then MsgBox("Cus Notes Info Not Found.", MsgBoxStyle.Information) drCustomerNotes.Close()
Результат текстового поля, который я получаю с помощью приведенного выше кода:
4/4/2019 2:43:11 вечера
Мы оформили возврат денег.
Gerry Schmitz
tbCusNotes.Text = CusNotesTemp
Вы не объединяете текст текстового поля. Очистите его в начале цикла rdr; объедините во внутреннем цикле.