1

問題の解決策を見つけるのに苦労していました。DBのすべての列を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
4

1 に答える 1

1

1つのリストボックスに複数の列を追加することはできないと思います。代わりに、表示する列(DisplayMember)を1つの列として連結することをお勧めします。

おそらくこのようなものです(すべての列がvarcharであると仮定します-そうでない場合は、を使用する必要がありCASTCONVERT可能COALESCEです:

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

そうでない場合は、Gridviewまたは複数の列をサポートするその他のコントロールの使用を検討できます。

ところで-あなたは設定していません-あなたはValueMemberあなたのニーズに応じて同様にそれをする必要があるかもしれません。

幸運を。

于 2013-01-31T03:31:47.817 に答える