我一直很难找到问题的解决方案,我想在我的ListBox中用SQL显示我的数据库中的所有列...有人有想法吗?请帮帮我?
这是我的代码:
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
答案 0 :(得分: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
- 根据您的需要,您可能也需要这样做。