在ListBox上显示SQL SERVER中的数据

时间:2013-01-31 02:20:38

标签: vb.net visual-studio-2010 sql-server-2008 sql-server-2005

我一直很难找到问题的解决方案,我想在我的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

1 个答案:

答案 0 :(得分:1)

我认为您不能将多个列添加到单个列表框中。相反,我建议将您要显示的列(DisplayMember)连接为单个列。

也许是这样的(假设所有列都是varchar - 如果不是,你需要使用CASTCONVERT和可能的COALESCE

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

如果没有,您可以考虑使用Gridview或其他支持多列的控件。

BTW - 您没有设置ValueMember - 根据您的需要,您可能也需要这样做。

祝你好运。