Click here to Skip to main content
15,888,733 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
C#
private void forselectquery()
        {
            MySqlConnection con = new MySqlConnection("Server=xxxxxxxxxx; UserId=xxxxxxxx; Password=xxxxxxxx; Database=xxxxxxxxx;");

            con.Open();
            MySqlDataAdapter da = new MySqlDataAdapter();
       

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                try
                {
                   
                   

                    String str1 = "select * from UrlReport where URL=@URL and Title=@Title and LastVisited=@LastVisited and Date=@Date";
                    MySqlCommand cmd1 = new MySqlCommand(str1, con);
                   

                    cmd1.Parameters.AddWithValue("@URL", dataGridView1.Rows[i].Cells[0].Value);
                    cmd1.Parameters.AddWithValue("@Title", dataGridView1.Rows[i].Cells[1].Value);
                    cmd1.Parameters.AddWithValue("@LastVisited", dataGridView1.Rows[i].Cells[2].Value);
                    cmd1.Parameters.AddWithValue("@Date", label3.Text);
                    MySqlDataReader DR1 = cmd1.ExecuteReader();
                    if (DR1.Read())
                    {
                        MessageBox.Show("google"); 
                    }
                    else
                    {



                        String str = "INSERT INTO UrlReport(Date,MacAddress,URL,Title,LastVisited,LastUpdated,Expires) VALUES (@Date,@MacAddress,@URL,@Title,@LastVisited,@LastUpdated,@Expires)";
                        MySqlCommand cmd = new MySqlCommand(str, con);
                        cmd.Parameters.AddWithValue("@Date", label3.Text);
                        cmd.Parameters.AddWithValue("@MacAddress", lblMacAddress.Text);
                        cmd.Parameters.AddWithValue("@URL", dataGridView1.Rows[i].Cells[0].Value);
                        cmd.Parameters.AddWithValue("@Title", dataGridView1.Rows[i].Cells[1].Value);
                        cmd.Parameters.AddWithValue("@LastVisited", dataGridView1.Rows[i].Cells[2].Value);
                        cmd.Parameters.AddWithValue("@LastUpdated", dataGridView1.Rows[i].Cells[3].Value);
                        cmd.Parameters.AddWithValue("@Expires", dataGridView1.Rows[i].Cells[4].Value);
                        da.InsertCommand = cmd;
                        cmd.ExecuteNonQuery();
                        con.Close();
                       

                    }

                    DR1.Close();
                }
                catch (Exception EX)
                {
                   
                    MessageBox.Show("" + EX);
                }
                
            }
           
        

        }

show the following code... its given There is already an open DataReader associated with this Connection which must be closed first. errer please help
Posted
Updated 23-Apr-14 21:06pm
v2
Comments
ccalma 24-Apr-14 3:02am    
What is the exact error message?

Close the SqlDataReader before executing another query
Try this:
C#
private void forselectquery()
{
MySqlConnection con = new MySqlConnection("Server=xxxxxxxxxx; UserId=xxxxxxxx; Password=xxxxxxxx; Database=xxxxxxxxx;");
 
con.Open();
MySqlDataAdapter da = new MySqlDataAdapter();

 
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
try
{


 
String str1 = "select * from UrlReport where URL=@URL and Title=@Title and LastVisited=@LastVisited and Date=@Date";
MySqlCommand cmd1 = new MySqlCommand(str1, con);

 
cmd1.Parameters.AddWithValue("@URL", dataGridView1.Rows[i].Cells[0].Value);
cmd1.Parameters.AddWithValue("@Title", dataGridView1.Rows[i].Cells[1].Value);
cmd1.Parameters.AddWithValue("@LastVisited", dataGridView1.Rows[i].Cells[2].Value);
cmd1.Parameters.AddWithValue("@Date", label3.Text);
MySqlDataReader DR1 = cmd1.ExecuteReader();
if (DR1.Read())
{
MessageBox.Show("google");

DR1.Close();//close datareader<--------------------------------
}
else
{
 
DR1.Close();//close datareader<--------------------------------
 
String str = "INSERT INTO UrlReport(Date,MacAddress,URL,Title,LastVisited,LastUpdated,Expires) VALUES (@Date,@MacAddress,@URL,@Title,@LastVisited,@LastUpdated,@Expires)";
MySqlCommand cmd = new MySqlCommand(str, con);
cmd.Parameters.AddWithValue("@Date", label3.Text);
cmd.Parameters.AddWithValue("@MacAddress", lblMacAddress.Text);
cmd.Parameters.AddWithValue("@URL", dataGridView1.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("@Title", dataGridView1.Rows[i].Cells[1].Value);
cmd.Parameters.AddWithValue("@LastVisited", dataGridView1.Rows[i].Cells[2].Value);
cmd.Parameters.AddWithValue("@LastUpdated", dataGridView1.Rows[i].Cells[3].Value);
cmd.Parameters.AddWithValue("@Expires", dataGridView1.Rows[i].Cells[4].Value);
da.InsertCommand = cmd;
cmd.ExecuteNonQuery();
con.Close();

 
}
 
DR1.Close();
}
catch (Exception EX)
{

MessageBox.Show("" + EX);
}

}


 
}
 
Share this answer
 
v3
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900