Member Avatar for Rahul47

Hello Guys, Here is an interesting problem.
I have the following code. But it seems like I am missing out something in the process of populating drop down menus with data from database.

You guys have a look at it and please give your valuable suggestions.

Private Sub Open_Exam()
        Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\VB Applications\PROJECT_1\PROJECT_1\examdb.mdf;Integrated Security=True;User Instance=True")
        Dim cmd As New SqlCommand("Select Exam_No from Exam_Master Where Author='" + mniUsername.Text + "'", con)
        con.Open()
        Dim dr As SqlDataReader = cmd.ExecuteReader()

        While dr.Read()
            tsmOpen_Exam.DropDown.Items.Add(dr.GetString)
        End While

        dr.Close()
        con.Close()
    End Sub

Thanks.

Are you getting errors or is the result you are getting simply not the result you are expecting?

What are the error(s) or what is the result you get/expect?

Member Avatar for Rahul47

@Philippe: I am getting error as follows:

Error 1 Overload resolution failed because no accessible 'GetString' accepts this number of arguments. C:\VB Applications\PROJECT_1\PROJECT_1\Welcome.vb 80 45 PROJECT_1

Member Avatar for Rahul47

As the error is ellliminated now by using dr.ToString()
but the data is not fetched .....am getting unexpected result like.

System.Data.SqlClient.SqlDataReader

Trying to figure out where i Went Wrong.

Are you using the Visual Basic source code editor to enter your code?
If so, try paying attention to the IntelliSence prompts.
It informs you that you need to specify the column to retrieve for the GetString method.

Member Avatar for Rahul47

@TnTinMN: If you pay attention to code that I posted, I have only requested one column.
So how should i Specify it ??

the GetString method expects an integer value as argument that represent the 0-based index of the table columns.

In your case, the only column from your select is Exam_No and this value can be fetched with the index 0.

Note that since the value of Exam_No is probably an integer, it might require you to do .GetInt32(0).ToString() or even just .GetValue(0).ToString()

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.