如何在保持项目显示相同的同时更改列表框中项目的值?

时间:2013-12-11 17:52:04

标签: sql sql-server visual-studio-2010 listbox

我有ListBox填充了SqlDataReader对象,它看起来很棒,但我遇到的问题是我希望数据文本字段显示来自{{1的数据} date查询的字段,SQL的数据值来自ListBox字段。如果在Visual Studio 2010中使用查询构建器功能,则这很容易实现。只需单击ListBox并更改右侧属性列中的属性即可。但是,由于我没有使用查询构建器功能并且我手动编码,我无法弄清楚如何将列表框的数据文本字段更改为url字段和数据值字段到date字段。

这背后的逻辑是,用户可以点击其项目的日期,点击按钮,它将导航到url中提供的url。< / p>

以下是我在按钮点击操作中使用的代码;

SQL Database

以下是一些有助于说明的图片。

enter image description here

编辑:我认为我提出这个问题有点难以理解,所以我要澄清一点。在ListBox内部,那里的项目现在显示搜索完成时的日期,我的问题是,如何让“打开”按钮打开一个带有ListBoxItems对应URL字段的浏览器窗口?

2 个答案:

答案 0 :(得分:0)

你可以创建一个像这样的小课:

internal class LbItem
{
    internal string url;
    internal string data;

    public override string ToString()
    {
        return this.data;
    }
}

并将此类的实例添加到ListBox.Items:

listBox1.Items.Add(new LbItem { url = "http:xyz", data = "123" });

列表框将显示由重写的ToString()函数返回的LbItems ...

答案 1 :(得分:0)

我将代码更改为以下内容,以回答我的问题!

Protected Sub SearchButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SearchButton.Click
    Dim startDate As Date
    Dim endDate As Date

    startDate = TextStartDate.Text
    endDate = TextEndDate.Text

    Dim connectionString As String
    startDate = TextStartDate.Text
    endDate = TextEndDate.Text
    connectionString = SearchDataSource.ConnectionString.ToString

    Dim sqlConnection1 As New SqlConnection(connectionString)
    Using sqlConnection1
        Dim command As SqlCommand = New SqlCommand( _
        "SELECT first_name, last_name, date, url FROM tbl_paystubs WHERE date>='" + startDate.ToString + "' AND date<='" + endDate.ToString + "';", _
        sqlConnection1)
        sqlConnection1.Open()

        Dim da As New SqlDataAdapter(command)
        Dim ds As New DataSet()
        da.Fill(ds)

        sqlConnection1.Close()

        SearchListBox.DataSource = ds
        SearchListBox.DataTextField = "date"
        SearchListBox.DataValueField = "url"
        SearchListBox.DataBind()

    End Using
    TextStartDate.Text = ""
    TextEndDate.Text = ""

End Sub