I have the following code:
private void supplBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (sqlcon.State == ConnectionState.Closed)
{
sqlcon.Open();
}
cmd = new SqlCommand("Select * from Supplier_info where Supplier_name = '" + supplBox.Text + "'", sqlcon);
cmd.ExecuteNonQuery();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
suppNum.Text = Convert.ToString(reader.GetInt32(0));
}
reader.Close();
sqlcon.Close();
barCode1.Focus();
}
private void suppNum_KeyUp(object sender, KeyEventArgs e)
{
if (sqlcon.State == ConnectionState.Closed)
{
sqlcon.Open();
}
cmd = new SqlCommand("Select * from Supplier_info where Supplier_id = '" + suppNum.Text + "'", sqlcon);
cmd.ExecuteNonQuery();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
supplBox.Text = reader.GetString(1);
}
reader.Close();
sqlcon.Close();
barCode1.Focus();
}
When I switch between the supplBox and suppNum I get this error:
There is already an open DataReader associated with this Command which must be closed first.
If I add MultipleActiveResultSets=true
to my connection I get this error:
Invalid attempt to call Read when reader is closed.
Help please