Correction:
"Select * from Prod_Tbl where ProductName='" + name + "'"
Update:
I haven't read your answer properly.
You should not load the DataGridView on the loop. Remove it from the loop and place it outside. Change the foreach to below one.
string filter = string.Empty;
foreach (string name in r)
{
if (filter.Length > 0)
filter +=",";
filter += string.Format("'{0}'",name);
}
Now try below:
"Select * from Prod_Tbl where ProductName IN (" + filter + ")"