before this i create a new "MySqlConnection" and "MySqlCommand" for 2_1 and 2_2, but it will make my code very long and confuse, so i decided to reuse these which i already declared for 1_1. I have done that as below:
MySqlConnection connSelect = new MySqlConnection(connectionString);
MySqlCommand cmdSelect = connSelect.CreateCommand();
cmdSelect.Parameters.Add("username", MySqlDbType.VarChar);
cmdSelect.Parameters["username"].Value = Request.QueryString["username"].ToString();
cmdSelect.CommandText = "SELECT * FROM member WHERE username = @username";
connSelect.Open();
MySqlDataReader drSelect1_1 = cmdSelect.ExecuteReader();
if (drSelect1_1.Read())
{
//1_1
this.lbl1_1.Text = drSelect1_1["username"].ToString();
//2_1
if (drSelect1_1["direct1"].ToString() != null)
{
this.lbl2_1.Text = drSelect1_1["direct1"].ToString();
connSelect.Close();
cmdSelect.CommandText = "SELECT * FROM member WHERE username = '" + this.lbl2_1.Text + "'";
connSelect.Open();
MySqlDataReader drSelect2_1 = cmdSelect.ExecuteReader();
if (drSelect2_1.Read())
{
//some code
}
}
//2_2
if (drSelect1_1["direct2"].ToString() != null) //ERROR HERE
{
this.lbl2_2.Text = drSelect1_1["direct2"].ToString();
}
}
there is a error: "No current query in data reader" at 2_2, where i did wrong here? please advice me thx :)
ok, i out of my idea already, i move back to my origin method. i will come back to this question if my time is allows to. so by now you guys can take it as a reference. If you have a better solution, please share it with us. :) much appreciate.
So, basically, my idea is to create every MySqlConnection, MySqlCommand, and MySqlDataReader for every "IF" condition. here you go.
MySqlConnection connSelect = new MySqlConnection(connectionString);
MySqlCommand cmdSelect = connSelect.CreateCommand();
cmdSelect.Parameters.Add("username", MySqlDbType.VarChar);
cmdSelect.Parameters["username"].Value = Request.QueryString["username"].ToString();
cmdSelect.CommandText = "SELECT * FROM member WHERE username = @username";
connSelect.Open();
MySqlDataReader drSelect1_1 = cmdSelect.ExecuteReader();
if (drSelect1_1.Read())
{
//1_1
this.lbl1_1.Text = drSelect1_1["username"].ToString();
//2_1
if (drSelect1_1["direct1"].ToString() != null)
{
this.lbl2_1.Text = drSelect1_1["direct1"].ToString();
MySqlConnection connSelect2_1 = new MySqlConnection(connectionString);
MySqlCommand cmdSelect2_1 = connSelect2_1.CreateCommand();
cmdSelect2_1.CommandText = "SELECT * FROM member WHERE username = '" + this.lbl2_1.Text + "'";
connSelect2_1.Open();
MySqlDataReader drSelect2_1 = cmdSelect2_1.ExecuteReader();
if (drSelect2_1.Read())
{
//some code
}
connSelect2_1.Close();
}
//2_2
if (drSelect1_1["direct2"].ToString() != null)
{
this.lbl2_2.Text = drSelect1_1["direct2"].ToString();
MySqlConnection connSelect2_2 = new MySqlConnection(connectionString);
MySqlCommand cmdSelect2_2 = connSelect2_2.CreateCommand();
cmdSelect2_2.CommandText = "SELECT * FROM member WHERE username = '" + this.lbl2_2.Text + "'";
connSelect2_2.Open();
MySqlDataReader drSelect2_2 = cmdSelect2_2.ExecuteReader();
if (drSelect2_2.Read())
{
//some code
}
connSelect2_2.Close();
}
}
connSelect.Close();