create one sql statement which return all the data you want.
string sql = string.Format("Select l.AttrID , l.ValStr from csowner.LLAttrData l join csowner.dtree d on ID = d.DataID where d.DataID in ({0}) order by l.AttrID asc", string.Join(",", listAttributeRegion));
using (var strCon = new SqlConnection( ConfigurationManager.ConnectionStrings["edms"].ConnectionString ) )
using (var com = new SqlCommand(sql, strCon))
using (var adapter = new SqlDataAdapter( com ))
{
var ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}