Error binding Access table to dropdown box in ASP.Net

I get this error even though there is a column "Employees_Name"
System.Web.HttpException: DataBinding: 'System.Data.Common.DataRecordInternal' does not contain a property with the name 'Employees_Name'.

Is there something wrong with my code?
// Code on Button
    <asp:DropDownList ID="ddFacilitator" AppendDataBoundItems = "true" runat="server">
    </asp:DropDownList>
 
//Code Behind
        Dim strQuerydd As String = "SELECT Employees_Name FROM Empname"
        Dim cmdSearchdd As New OleDbDataAdapter(strQuerydd, dbConn)
 
        Dim readerdd As OleDbDataReader
 
        Try
            'dbConn.Open()
            readerdd = cmdSearch.SelectCommand.ExecuteReader()
 
 
            ddFacilitator.DataSource = readerdd
            ddFacilitator.DataTextField = "EmpName"
            ddFacilitator.DataValueField = "Employees_Name"
            ddFacilitator.DataBind()
 
 
        Catch exdd As Exception
            Response.Write(exdd)
        End Try
        readerdd.Close()
        dbConn.Close()

Open in new window

LVL 6
ITHelper80Asked:
Who is Participating?
 
JRockFLCommented:
This part looks incorrect
readerdd = cmdSearch.SelectCommand.ExecuteReader()
That is the commmand that is higher up in the code

i think you want the cmdSearchdd command
readerdd = cmdSearchdd.SelectCommand.ExecuteReader()

I hope that does it....my benadryl is starting to kick in.
if not i will be back in the am
0
 
JRockFLCommented:
This looks incorrect
ddFacilitator.DataTextField = "EmpName"

That is your table name.
Try
ddFacilitator.DataTextField = " Employees_Name"
0
 
ITHelper80Author Commented:
Hey JRock....Its been a while..what 3 hours? lol

I should just send you the questions directly.

I tired that and got a different error message
System.Web.HttpException: DataBinding: 'System.Data.Common.DataRecordInternal' does not contain a property with the name 'Employees_Name'. at System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) at System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName, String format) at System.Web.UI.WebControls.ListControl.PerformDataBinding(IEnumerable dataSource) at System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) at System.Web.UI.WebControls.ListControl.PerformSelect() at System.Web.UI.WebControls.BaseDataBoundControl.DataBind() at Facilitator.btnSearch_Click(Object sender, EventArgs e) in H:\Work Web Dev\Visions\Facilitator.aspx.vb:line 72 

Open in new window

0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
JRockFLCommented:
The other thing that catches my eye might be

readerdd = cmdSearch.SelectCommand.ExecuteReader()

Try
readerdd = cmdSearch.ExecuteReader()
0
 
ITHelper80Author Commented:
ASP.Net 3.5 wont let me do that.

It says ExecuteReader is not a member of OLEDBDataAdapter

The error goes away with the SelectCommand
0
 
JRockFLCommented:
Sorry, I have not used OleDbDataAdapter in 3.5

Hmmmm
You are positive Employees_Name is the correct column name?

Maybe an alias would work

Dim strQuerydd As String = "SELECT Employees_Name As Name FROM Empname"
            ddFacilitator.DataTextField = "Name"
            ddFacilitator.DataValueField = "Name"
0
 
JRockFLCommented:
'dbConn.Open()

The connection is closed?
dbConn.Open()
0
 
JRockFLCommented:
Even though using a reader is a good choice, so can be a datatable.

    Private Sub LoadDropDowns()
        Dim dbConn As OleDbConnection
        Dim strQuerydd As String = "SELECT Employees_Name FROM Empname"
        Dim command As New OleDbCommand(strQuerydd, dbConn)
        Dim da As New OleDbDataAdapter(command)
        Dim dt As New DataTable()
 
        Try
 
            cmdSearchdd.Fill(dt)
 
            ddFacilitator.DataSource = dt
            ddFacilitator.DataTextField = "Employees_Name"
            ddFacilitator.DataValueField = "Employees_Name"
            ddFacilitator.DataBind()
 
 
        Catch exdd As Exception
            Response.Write(exdd)
        End Try
 
    End Sub

Open in new window

0
 
ITHelper80Author Commented:
The ddConn.Open() is commented out. Here is my complete code behind

Also there is my DB...just in case i may be missing something
Imports System.Data.OleDb
Partial Class Facilitator
    Inherits System.Web.UI.Page
    Private dbConn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Visions_DB.mdb;Persist Security Info=False;")
 
 
    Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
 
 
        Dim strQuery As String = "SELECT Vis_Num,Status,Employee,Present_Method,Proposed_Method,Validator,Notes,ValDate FROM Data WHERE Vis_Num = ?"
        Dim cmdSearch As New OleDbDataAdapter(strQuery, dbConn)
 
        'cmdSearch.SelectCommand.Parameters.AddWithValue("Vis_Num", "%" & txtSearch.Text.ToString & "%")
        cmdSearch.SelectCommand.Parameters.AddWithValue("Vis_Num", CInt(txtSearch.Text))
        Dim reader As OleDbDataReader
 
        Try
            dbConn.Open()
            reader = cmdSearch.SelectCommand.ExecuteReader()
 
            If IsNothing(reader) = False Then
 
                txtError.Visible = True
                txtVisNum.Text = ""
                txtName.Text = ""
                txtName.Text = ""
                txtPresent.Text = ""
                txtProposed.Text = ""
                ddstatus.SelectedValue = ""
 
            End If
 
            While reader.Read()
 
                If Not reader("Vis_Num") Is DBNull.Value Then
                    txtVisNum.Text = reader("Vis_Num").ToString()
                    txtName.Text = reader("Employee").ToString()
                    txtPresent.Text = reader("Present_Method").ToString()
                    txtProposed.Text = reader("Proposed_Method").ToString()
                    'ddstatus.DataSource = reader
                    'ddstatus.DataValueField = "Status"
                    'ddstatus.DataTextField = "Data"
                    'ddstatus.Items.Insert(0, New ListItem("-- Status --"))
                    'ddstatus.DataBind()
 
                    txtError.Visible = False
                End If
 
            End While
 
        Catch ex As Exception
 
            Response.Write(ex)
 
        End Try
 
        reader.Close()
 
        Dim strQuerydd As String = "SELECT Employees_Name as Name FROM Empname"
        Dim cmdSearchdd As New OleDbDataAdapter(strQuerydd, dbConn)
 
        Dim readerdd As OleDbDataReader
 
        Try
            'dbConn.Open()
            readerdd = cmdSearch.SelectCommand.ExecuteReader()
 
 
            ddFacilitator.DataSource = readerdd
            ddFacilitator.DataTextField = "Name"
            ddFacilitator.DataValueField = "Name"
            ddFacilitator.DataBind()
 
 
        Catch exdd As Exception
            Response.Write(exdd)
        End Try
        readerdd.Close()
        dbConn.Close()
    End Sub
End Class

Open in new window

Visions-DB.mdb
0
 
ITHelper80Author Commented:
Sweet, once again you come to the rescue.

Thanks, Im sure we will speak tomorrow ;)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.