Improve company productivity with a Business Account.Sign Up

x
?
Solved

Error binding Access table to dropdown box in ASP.Net

Posted on 2009-04-01
10
Medium Priority
?
601 Views
Last Modified: 2012-05-06
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

0
Comment
Question by:ITHelper80
  • 6
  • 4
10 Comments
 
LVL 8

Expert Comment

by:JRockFL
ID: 24045879
This looks incorrect
ddFacilitator.DataTextField = "EmpName"

That is your table name.
Try
ddFacilitator.DataTextField = " Employees_Name"
0
 
LVL 6

Author Comment

by:ITHelper80
ID: 24045892
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
 
LVL 8

Expert Comment

by:JRockFL
ID: 24045894
The other thing that catches my eye might be

readerdd = cmdSearch.SelectCommand.ExecuteReader()

Try
readerdd = cmdSearch.ExecuteReader()
0
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

 
LVL 6

Author Comment

by:ITHelper80
ID: 24045905
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
 
LVL 8

Expert Comment

by:JRockFL
ID: 24045934
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
 
LVL 8

Expert Comment

by:JRockFL
ID: 24045941
'dbConn.Open()

The connection is closed?
dbConn.Open()
0
 
LVL 8

Expert Comment

by:JRockFL
ID: 24045955
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
 
LVL 6

Author Comment

by:ITHelper80
ID: 24045979
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
 
LVL 8

Accepted Solution

by:
JRockFL earned 2000 total points
ID: 24046039
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
 
LVL 6

Author Comment

by:ITHelper80
ID: 24046081
Sweet, once again you come to the rescue.

Thanks, Im sure we will speak tomorrow ;)
0

Featured Post

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

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.

Join & Write a Comment

When we develop an application in Ms Access 2016 we should also try to protect the queries, macros and table links. I know I may not have a permanent solution but for novice users, they will not manage to break your application. Below is the detail …
A quick solution showing how to control and open a POS Cash Register Drawer using VBA with MS Access.
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Enter Foreign and Special Characters Enter characters you can't find on a keyboard using its ASCII code ... and learn how to make a handy reference for yourself using Excel ~ Use these codes in any Windows application! ... whether it is a Micr…

584 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question