1

У меня возникли проблемы с поиском решения проблемы, я хочу отобразить все столбцы в моей БД в SQL в моем ListBox ... у кого есть идея? пожалуйста, помогите мне?Отображение данных в SQL SERVER в ListBox

Вот мои коды:

Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click 
     Try 
      Dim thisConnection As New SqlConnection("Data Source=#####;Initial Catalog=####;Persist Security Info=True;User ID=#####;Password=#####") 
      thisConnection.Open() 
      Dim sql As String = ("SELECT ControlNo,EmpNo,CheckOutDate,CheckOutTime,TaxiNo,PlateNo,Model,Make FROM dbo.ChkInOut WHERE ControlNo='" & txtsearch.Text & "'") 
      Dim da As New SqlDataAdapter(sql, thisConnection) 
      da.Fill(ds, "dbo.ChkInOut") 
      Dim dt As DataTable = ds.Tables("dbo.ChkInOut") 
      ListBox1.DataSource = dt 
      ListBox1.DisplayMember = ("ControlNo") 
      txtCtrlNo.DataBindings.Add("text", dt, "ControlNo") 
      txtEmpNo.DataBindings.Add("text", dt, "EmpNo") 
      txtCheckOutDate.DataBindings.Add("text", dt, "CheckOutDate") 
      txtCheckOutTime.DataBindings.Add("text", dt, "CheckOutTime") 
      txtTaxiUnitNo.DataBindings.Add("text", dt, "TaxiNo") 
      txtPlateNo.DataBindings.Add("text", dt, "PlateNo") 
      txtModel.DataBindings.Add("text", dt, "Model") 
      txtMake.DataBindings.Add("text", dt, "Make") 
      thisConnection.Close() 
     Catch ex As Exception 
     End Try 
    End Sub 
+1

Попробуйте положить ''; DROP Table dbo.ChkInOut; - 'в поле поиска. После этого ListBox покажет все столбцы в вашей таблице. –

+0

@JoelCoehoorn - люблю его, хе-хе - зачем останавливаться там? '; DROP DATABASE OJT; - SQL Injection может быть интересным – sgeddes

ответ

1

Я не думаю, что вы можете добавить несколько столбцов в один список. Вместо этого я бы рекомендовал объединить столбец, который вы хотите отобразить (DisplayMember), как один столбец.

Возможно, что-то вроде этого (предполагая, что все столбцы VARCHAR - если нет, то вам нужно использовать CAST, CONVERT и возможные COALESCE:

SELECT ControlNo + ': ' + EmpNo + ': ' + CheckOutDate + ': ' + 
      CheckOutTime + ': ' + TaxiNo + ': ' + PlateNo + ': ' + 
      Model + ': ' + Make as DisplayColumn 
FROM dbo.ChkInOut 
WHERE ControlNo='" & txtsearch.Text & "'" 

Если нет, то вы могли бы рассмотреть с помощью Gridview или какой-либо другой . управления, который поддерживает несколько столбцов

BTW - вы не устанавливая ValueMember -.. возможно, вам придется сделать это, а также в зависимости от ваших потребностей

Успехов

+0

sgeddes Эти коды работают нормально, моя единственная проблема - это «ЗАГРУЗКА ВРЕМЕНИ», могу ли я уменьшить ее? – Danjor

+0

Не уверен, что я понимаю ваш вопрос? Если вы имеете в виду, что требуется некоторое время, чтобы загрузить ваш запрос выше, то я предполагаю, что у вас нет индекса в столбце ControlNo в БД. – sgeddes

+0

Да, это займет некоторое время, чтобы загрузить результат моей программы ... Что это за индекс, что вы говорите о sir sgeddes? – Danjor

Смежные вопросы