can the datasource of a drop down list be a datareader?

Discussion in 'ASP .Net' started by Jake S, Jul 6, 2003.

  1. Jake S

    Jake S Guest

    Hi all,

    Is it possibele to set the datasource of a dropdown list to a datareader?
    When I try to the only column I receive is a column populated by the
    datasource name repeated the amount of times equivilant to the number of
    records returned, instead of the two columns(value and text) I have
    populated the datareader with.

    Any ideas?

    Thanks in advance

    Cheers Jake
     
    Jake S, Jul 6, 2003
    #1
    1. Advertising

  2. Jake S

    Natty Gur Guest

    Hi,

    You have to set the DataTextField and DataValueField .

    Natty Gur, CTO
    Dao2Com Ltd.
    28th Baruch Hirsch st. Bnei-Brak
    Israel , 51114

    Phone Numbers:
    Office: +972-(0)3-5786668
    Fax: +972-(0)3-5703475
    Mobile: +972-(0)58-888377

    Know the overall picture


    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
     
    Natty Gur, Jul 6, 2003
    #2
    1. Advertising

  3. Jake S

    KathyB Guest

    Hi Jake, I'm new to this to, but I spent a lot of time figuring this
    out (with help from group postings, etc.)

    Here are two subs, both use datareader (which IS better than dataset)
    if you just want to populate lists. The first one, simply populates a
    list from a db table (please note the Not IsPostBack statement,
    otherwise you will loose the user selection). The second one uses the
    first box as a filter to populate the second listbox. I used
    OleDbConnection, but you obviously can easily make this
    SQLDbConnection, etc.

    Hope these examples help you!

    Also, I included a third example to fill just a textbox with a
    datareader field from a db. You must use the Read method to select the
    first record and test for false().

    Kathy

    ******POPULATE DROPDOWN DROM DB WITH DATAREADER*******

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles MyBase.Load

    'Put user code to initialize the page here

    If Not IsPostBack Then
    Dim Conn1 As OleDbConnection
    Dim Rdr1 As OleDbDataReader
    Dim Cmd1 As OleDbCommand
    Dim strSQL As String
    Conn1 = New OleDbConnection(strConn)
    strSQL = "SELECT DISTINCT Station FROM tblStationUsers ORDER BY
    Station"
    Cmd1 = New OleDbCommand(strSQL, Conn1)
    Conn1.Open()
    Rdr1 = Cmd1.ExecuteReader()
    cboStation.DataSource = Rdr1
    cboStation.DataBind()
    cboStation.Items.Insert(0, "Select Station")
    cboStation.SelectedIndex = 0
    Rdr1.Close()
    Conn1.Close()
    End If
    End Sub

    *****POPULATE DROPDOWN FROM DB WITH DATAREADER USING FIRST LIST
    SELECTION AS QUERY PARAMETER******

    Private Sub cboStation_SelectedIndexChanged(ByVal sender As
    System.Object, ByVal e As System.EventArgs) Handles
    cboStation.SelectedIndexChanged

    Dim Conn2 As New OleDbConnection()
    Dim Rdr2 As OleDbDataReader
    Dim strSQL2 As String = "SELECT DISTINCT UserName FROM tblStationUsers
    WHERE
    ([Station] = @Station) ORDER BY UserName"
    Dim Cmd2 As New OleDbCommand(strSQL2, Conn2)
    Conn2 = New OleDbConnection(strConn)
    Dim prmStation As OleDbParameter = New OleDbParameter("@Station",
    OleDbType.VarChar, 50)
    prmStation.Value = cboStation.SelectedItem.Value
    Cmd2.Parameters.Add(prmStation)
    Cmd2.Connection = Conn2
    Conn2.Open()
    Rdr2 = Cmd2.ExecuteReader()
    cboUser.DataSource = Rdr2
    cboUser.DataBind()
    cboUser.Items.Insert(0, "Select User")
    cboUser.SelectedIndex = 0
    Rdr2.Close()
    Conn2.Close()
    End Sub

    *****FILL TEXTBOX WITH DATAREADER RESULT******
    Private Sub cboUser_SelectedIndexChanged(ByVal sender As
    System.Object, ByVal e As System.EventArgs) Handles
    cboUser.SelectedIndexChanged

    'Get password from db to use in validation of txtpass field
    Dim Conn3 As New OleDbConnection()
    Dim Rdr3 As OleDbDataReader
    Dim strSQL3 As String = "SELECT Password FROM tblUsers WHERE
    ([UserName] = @UserName)"
    Dim Cmd3 As New OleDbCommand(strSQL3, Conn3)
    Conn3 = New OleDbConnection(strConn)
    Dim prmUserName As OleDbParameter = New OleDbParameter("@UserName",
    OleDbType.VarChar, 50)
    prmUserName.Value = cboUser.SelectedItem.Value
    Cmd3.Parameters.Add(prmUserName)
    Cmd3.Connection = Conn3
    Conn3.Open()
    Rdr3 = Cmd3.ExecuteReader()
    If Rdr3.Read() Then
    dbPass.Text = Rdr3("Password") 'used to compare to tblUsers
    End If
    Rdr3.Close()
    Conn3.Close()
    End Sub






    "Jake S" <> wrote in message news:<#>...
    > Hi all,
    >
    > Is it possibele to set the datasource of a dropdown list to a datareader?
    > When I try to the only column I receive is a column populated by the
    > datasource name repeated the amount of times equivilant to the number of
    > records returned, instead of the two columns(value and text) I have
    > populated the datareader with.
    >
    > Any ideas?
    >
    > Thanks in advance
    >
    > Cheers Jake
     
    KathyB, Jul 6, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?U2FjaGluIEt1Y2hpbmFk?=

    Issue With Binding Of A DataReader to a Drop-Down or List Box Cont

    =?Utf-8?B?U2FjaGluIEt1Y2hpbmFk?=, Jul 22, 2004, in forum: ASP .Net
    Replies:
    1
    Views:
    3,180
    =?Utf-8?B?U2FjaGluIEt1Y2hpbmFk?=
    Jul 22, 2004
  2. SirPoonga
    Replies:
    2
    Views:
    815
    Ben Strackany
    Jan 7, 2005
  3. weiwei
    Replies:
    0
    Views:
    1,069
    weiwei
    Jan 5, 2007
  4. msimmons
    Replies:
    0
    Views:
    544
    msimmons
    Jul 16, 2009
  5. Replies:
    5
    Views:
    315
Loading...

Share This Page