I am not sure about your scenario but I think you can you can change your query to some extend to get the goal.
Instead of doing
using ( var com = new SqlCommand( "Select l.AttrID , l.ValStr from csowner.LLAttrData l join csowner.dtree d on ID = d.DataID where d.DataID = @DataID order by l.AttrID asc", strCon ) )
you can write like:
using ( var com = new SqlCommand( "Select l.AttrID , l.ValStr from csowner.LLAttrData l join csowner.dtree d on ID = d.DataID where d.DataID in(select distinct id from yourtable) order by l.AttrID asc", strCon ) )
Or you can use joining also to get data.
Here
yourtable is your first query's table name.
by this way you you can save looping through each item and hit database each time and overall your problem of combining data will also be solved.