Просто сохраните URL-адрес изображения в DataTable, а не фактическое изображение. Затем используйте TemplateField
в вашем GridView и поместите изображение в ItemTemplate
:
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrlColumn") %>' ... />
</ItemTemplate>
</asp:TemplateField>
Вы также можете использовать ImageField
:
<asp:ImageField DataImageUrlField="ImageNameColumn" DataImageUrlFormatString="/images/{0}"></asp:ImageField>
EDIT
При объявлении столбцов попробуйте следующее:
dt.Columns.Add("Image", typeof(string));
И чтобы установить значение столбца изображения, попробуйте это:
dr.SetField<string>("Image", "img.png");