-1

I'm trying to read data from the data source and I got this error in the ExecuteReader method, When I try to show the result in some label.

I'm getting the error here idlabel.Text = myraeder("id"); under myreader varibale

private void Searchbtn_Click(object sender, EventArgs e)
{
   SqlConnection con = new SqlConnection(dataConnectin);
   con.Open();

   string searchsql = "SELECT * from Table WHERE Name=" + searchtxt.Text + "";
   SqlCommand cmd = new SqlCommand(searchsql, con);

   SqlDataReader myraeder;
   myraeder = cmd.ExecuteReader();
   myraeder.Read();

   idlabel.Text = myraeder("id");
}
Sh.Imran
  • 1,035
  • 7
  • 13

3 Answers3

1
  1. Use square brackets instead of round brackets.
  2. Convert the field to string.
    idlabel.Text = myraeder["id"].ToString();
Andrew Arthur
  • 1,563
  • 2
  • 11
  • 17
1

Read the data in this way:

idlabel.Text = myraeder["id"].ToString();
con.Close();

And do not forget to close the connection after getting required data.

Sh.Imran
  • 1,035
  • 7
  • 13
1

There are so many errors that are obvious. Let me show you a better way to write code. Follow me!

  • Give the variables proper names and casing.
  • Use asynchrony.
  • Use parameters in sql queries.
  • Release resources by wrapping them in using.
  • Enclose names in brackets in sql.
private async void SearchButton_Click(object sender, EventArgs e)
{
    using (var connection = new SqlConnection(connectionString))
    {
        await connection.OpenAsync();

        string searchSql = "SELECT * from [Table] WHERE [Name]=@name";

        using (var command = new SqlCommand(searchSql, connection))
        {
            command.Parameters.Add("name", SqlDbType.NVarChar).Value = searchTextBox.Text;

            using (var reader = await command.ExecuteReaderAsync())
            {
                while (await reader.ReadAsync())
                {
                    idLabel.Text = reader["id"].ToString();
                }
            }
        }
    }
}
Alexander Petrov
  • 13,457
  • 2
  • 20
  • 49