在数据库中存储图像并在datagridview中检索
本文关键字:datagridview 检索 存储 数据库 图像 | 更新日期: 2023-09-27 18:06:16
我正在尝试新的东西,我想在数据库中存储图像url,并在gridview中动态检索它。我试过用blob。但我不想在数据库中存储图像,而只是url。一些解决方案,我发现,我们可以使用模板字段在gridview和某种方式使用绑定函数。此外,我可以存储在项目文件夹中的所有图像,并从文件夹检索图像。在按钮上单击我想在网格视图中显示图像。但我仍然无法继续前进。这是目前为止的代码....
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="Model_Id" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="Model_Id" HeaderText="Model_Id"
InsertVisible="False" ReadOnly="True" SortExpression="Model_Id" />
<asp:BoundField DataField="Model_Name" HeaderText="Model_Name"
SortExpression="Model_Name" />
<asp:BoundField DataField="Max_seats" HeaderText="Max_seats"
SortExpression="Max_seats" />
<asp:BoundField DataField="Image" HeaderText="Image" SortExpression="Image" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [Model]"></asp:SqlDataSource>
</div>
在您的GridView
中添加一个模板字段,即
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="Model_Id" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="Photo">
<ItemTemplate>
<img src='<%# Eval("Image") %>' />
</ItemTemplate>
</asp:TemplateField>
//other bound columns
</Columns>
</asp:GridView>
其中Image
是表[Model]
中的列,包含图像URL。如果图像不显示,检查相对url结构,您可能需要像这样添加前缀/调整它:
/images/image1.jpg
到../images/image1.jpg
(取决于包含图像的文件夹的相对位置)
将图像存储在项目的解决方案资源管理器中的文件夹中,如果要保存到数据库的链接,则将列的数据类型设置为varchar(MAX),并将图像到数据库表的链接存储如下:
1。如果文件夹名为Image,则将url存储为../Image/picture.jpg
2。进入gridview的快速任务菜单,点击编辑字段,在AVAILABLE fields列表中选择"ImageField",点击添加,图像字段被添加到SELECTED fields
3。上下移动选定字段中的"ImageField",将其置于其他列之间
4。点击"ImageField",ImageField属性将显示在右侧,GOTO在"DataImageUrlField"中选择要检索图像的数据库表列名。
这应该工作,ImageField将自动生成HTML代码为您的图像显示