Close the
SqlDataReader before executing another query
Try this:
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();
}
else
{
DR1.Close();
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);
}
}
}