Solved

Using list box to fetch data from database

Posted on 2009-05-17
6
226 Views
Last Modified: 2012-05-07
Hello Guys, I am stuck in a situation where after the data is entered in the database, the emp id and emp name appear in the listbox. (See pic. attached). When i click on the empid in the list box , i want to load the values to the respective controls to enable the user to edit them if needed. Also not quite sure if should place this in the selectedindexchanged event or somewhere else. Please guide me as to where i have gone wrong. Attached is the source code that i'm using. Thanks in advance
Protected Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim con As New System.Data.OleDb.OleDbConnection
        Dim dreader As System.Data.OleDb.OleDbDataReader
        Dim myCommand As New System.Data.OleDb.OleDbCommand
        Dim myPath As String
 
        myPath = Server.MapPath("hayat.mdb")
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data source=" & myPath & ";"
 
        Dim emp As String = txtempid.Text
        Dim empid As String = emp.Substring(0, emp.IndexOf(" -"))
        myCommand.CommandText = "select * from empdetails where empid = " & empid & " order by adate"
 
        myCommand.Connection = con
        Try
            con.Open()
            dreader = myCommand.ExecuteReader
 
            While dreader.Read()
                txtempid.Text = dreader(1)
                txtempname.Text = dreader(2)
                txtempdesignation.Text = dreader(3)
            End While
           
        Catch ex As Exception
            lblmsg.Text = "There is an error" + ex.ToString
        Finally
 
            con.Close()
        End Try
    End Sub

Open in new window

error.bmp
0
Comment
Question by:preethamonline
  • 3
  • 3
6 Comments
 
LVL 11

Expert Comment

by:Muhammad Ousama Ghazali
ID: 24406832
1. If possible design you page/form so that the form-input section appears on top while use a gridview with ItempTemplate for and edit linkbutton just under the form-input section instead of a listbox as SelectedIndexChange can be very frequently fired due to user's navigation using keyboard keys ultimately having a load on server for round trips.
2. There is no need to use the EditTemplate of GridView as you wish to use the form-input section. Use the RowEditing event of the GridView and use the code you have pasted above there to bring the data from the database and display in fields. Make sure to present/unhide a Cancel button when you are in Edit Mode.
3. Confirm that EMPID in your database table is an integer or string because it might have affects when you are executing your query. My recommendation is to use stored procedures with SQL Server Express or Full Version if available.
0
 

Author Comment

by:preethamonline
ID: 24406910
Hi dear. Actually my form is designed this way. I actually wanted the editing to be seperate but my manager wanted it to be this way. Any idea how could I accomplish this with a list box.  
0
 
LVL 11

Expert Comment

by:Muhammad Ousama Ghazali
ID: 24406918
There is always a way...let me check and test and I'll try to be back soon with a solution.
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 11

Accepted Solution

by:
Muhammad Ousama Ghazali earned 500 total points
ID: 24406935
OK. It's easy. Set the AutoPostBack property on the ListBox to True and try using your code which you posted above in the ListBox's SelectedIndexChanged event. For saving back/updating the database with the changes, you have to code behind another button's click event. Make sure you write appropriate logic which prohibits the violation of Primary Key in your table e.g. you can create a IsRecordFound procedure which checks if the database contains a record with the Primary Key and if this record is same as the editing record, then OK otherwise, raise appropriate message.
Hope this helps.
0
 

Author Comment

by:preethamonline
ID: 24407165
Thanks a lot dear. Will try it out in the morning.
0
 

Author Closing Comment

by:preethamonline
ID: 31582387
Thanks for your help dear.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

820 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