Тебе лучше сделать что-то подобное.
GridView1.DataSource = commentsData;
GridView1.DataBind();
Если вы хотите связать только два столбца, вы можете сделать следующее.
var source = from p in commentsData
select new {p.ImageOfUser, "<br/>" + p.UsersName, p.UsersComment };
GridView1.DataSource = source;
GridView1.DataBind();
<asp:GridView ID="gvView" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="#">
<ItemTemplate>
<asp:Image ID="imgName" imageUrl='<%# Bind("ImageOfUser") %>'></asp:Image>
<asp:Hyperlink ID="hyperLink" Text='<%# Bind("UsersComment") %>' ></asp:Hyperlink>
</ItemTemplate>
<ItemTemplate>
<asp:Label ID="lblMessage" Text='<%# Bind("UsersComment") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Как вы можете видеть выше, изображение и гиперссылка находятся внутри ItemTempate, что означает, что они будут отображаться в одной ячейке в виде сетки.