Tle*_*pov 6 c# asp.net oracle gridview
我的数据库中的表已存储图片,文档,dll升降索等.如何为用户实现所有这些的映射?我将这些数据绑定到数据表,并希望在每个单元格中都有超链接,单击该链接时,将调用/打开数据库中的相应项目.
OracleCommand oracleCom = new OracleCommand();
oracleCom.Connection = oraConnect;
oracleCom.CommandText = "Select * From " + Session["tableNameIns"];
OracleDataAdapter adapter = new Oraenter code herecleDataAdapter();
DataTable tableD = new DataTable();
tableD.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.SelectCommand = oracleCom;
adapter.Fill(tableD);
changeTableAtributs(tableD);
tableResults.DataSource = tableD.AsDataView();
tableResults.DataBind();
Run Code Online (Sandbox Code Playgroud)
在DB next atributes:i_id(number),i_objecttype_id(number),s_code(nvarchar),s_name(nvarchar),m_content(blob),m_description(nvarchar)

在客户端上,我看到下一个:i_id(数字),i_objecttype_id(数字),s_code(nvarchar),s_name(nvarchar),m_description(nvarchar).没有属性m_content.

看来你的问题“不完整”。那么如果 blob 是一张图片,您希望显示该图片吗?如果 blob 是 dll 会发生什么?
在数据库中,M_CONTENT 字段是一个 blob,因此如果您将其数据绑定到 GridView,则 GridView 无法知道该字段中的内容。
如果您希望显示图像来显示 blob 中文件的类型,那么您需要知道该类型。要么将类型存储在数据库中(最佳),要么在运行时解析 blob 并找出文件类型。
在我看来,您已经拥有类型(I_OBJECTTYPE_ID)。如果是这种情况,那么您可以在 asp:GridView/Columns 下定义一个列
<asp:TemplateField HeaderText="File type">
<ItemTemplate>
<asp:Image runat="server" ID="mediaImage"
ImageUrl='<%# GetImageUrl(Eval("type") as string) %>' />
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
在您的情况下,类型列称为 I_OBJECTTYPE_ID。GetImageUrl 是代码隐藏中的函数:
switch (type)
{
case "video":
return "~//Images//video.png";
case "audio":
return "~//Images//audio.png";
}
return ""; // Something is wrong
Run Code Online (Sandbox Code Playgroud)
使用这种技术,您可以在 ItemTemplate 标记下创建超链接和其他内容。