| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2498 人关注过本帖
标题:如何用datalist控件显示SQL Server中的图片!?
只看楼主 加入收藏
kb3721
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-7-16
收藏
得分:0 

这样好像还是不能显示啊!
但是还得非常感谢楼上这位了!
还得继续努力学习。

2006-08-18 21:30
从小到大
Rank: 1
等 级:新手上路
威 望:2
帖 子:200
专家分:0
注 册:2006-6-24
收藏
得分:0 

--兼谈 DadaGrid 模板列的创建

DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便。除了与数据源直接绑定以外,我们还可以通过列绑定模板对 DataGrid 的列进行自定义,来按照我们设定的格式显示数据。
例如,数据表中有一个字段 f_DemoImage 用来存放图片的路径(包括图片文件名),为了在 DataGrid 的 Cell 中显示实际的图片,我们可以定义一个模板列,然后给该列赋予字段 f_DemoImage 的值,就可以在 DataGrid 的 Cell 中显示图片。

WebForm1.aspx 文件:
<%@ Page language="c#" Codebehind="Wizard_select_template.aspx.cs" AutoEventWireup="false" Inherits="WebHatcher.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name=GENERATOR>
<meta content=C# name=CODE_LANGUAGE>
<meta content=javascript name=vs_defaultClientScript>
<meta content=http://schemas.microsoft.com/intellisense/ie5 name=vs_targetSchema>
<LINK href="./styles/style.css" type=text/css rel=stylesheet >
</HEAD>

<body MS_POSITIONING="GridLayout">
<form id=Form1 method=post runat="server">

<asp:datagrid id=DataGrid1 runat="server" AutoGenerateColumns="False" Width="744px">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Image id="Image1" ImageUrl='<% #DataBinder.Eval(Container,"DataItem.f_DemoImage") %>' runat="server"></asp:Image>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

</form>
</body>
</HTML>

///WebForm1.aspx.cs 文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using myDBAccess; //我的命名空间

namespace WebHatcher
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (Page.IsPostBack)
{ }
else
{
// 在 DataGrid 中显示数据(包括图象):
myTableAccess oDbTable = new myTableAccess(); //myTableAccess我是定义的数据库访问类
oDbTable.sDbPath = Server.MapPath("./webhatcher.mdb");
oDbTable.sPassword = "";
oDbTable.sSQL = "select * from tabTemplate"; //tabTemplate是包含 f_DemoImage 字段的数据表
DataGrid1.DataSource = oDbTable.ReadFromTable();
DataGrid1.DataBind();
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

//数据访问类的定义:
using System;
using System.Data;
using System.Data.OleDb;

namespace myDBAccess
{
/// 数据库存取 namespace:
/// 类名:myTableAccess
/// 属性:
/// sDbPath  数据库路径(包括数据库文件名)
/// sPassword  数据库口令
/// sSQL    SQL 语句

public class myTableAccess
{
//声明 3 个属性(域):
public string sDbPath = "";
public string sPassword = "";
public string sSQL = "";

private OleDbConnection oConn;

public void OpenDB()
{
oConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sDbPath + ";Password=" + sPassword + ";");
oConn.Open();
}

public void CloseDB()
{oConn.Close(); }

public DataView ReadFromTable()
{
OpenDB();
OleDbDataAdapter oAdp = new OleDbDataAdapter(sSQL, oConn);
DataSet oDtSt = new DataSet();
oAdp.Fill(oDtSt, "aTable");
CloseDB();
return oDtSt.Tables["aTable"].DefaultView; //返回默认视图
}

}
}


2006-08-18 21:55
hoya
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:538
专家分:0
注 册:2006-6-27
收藏
得分:0 

数据库里存储的是二进制信息,怎么转化成图片格式呢??


妈的...一天能卖一颗就很不错了...
2006-08-19 10:56
史前大暴龙
Rank: 1
等 级:新手上路
帖 子:375
专家分:0
注 册:2005-11-22
收藏
得分:0 
数据库里是不能存放图片的,一般的做法都是在数据库里存放图片的地址,然后通过这个地址将图片显示在一个image的控件中的

我不是最好,但我可以更好,大家一起加油了
2006-08-21 01:29
hoya
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:538
专家分:0
注 册:2006-6-27
收藏
得分:0 
不是吧...怎么会不能存

妈的...一天能卖一颗就很不错了...
2006-08-21 13:35
lian8088
Rank: 1
等 级:新手上路
威 望:1
帖 子:101
专家分:0
注 册:2006-8-21
收藏
得分:0 

新建一个ShowImage.aspx空白页,在后台代码的Page_Load中写入以下代码:
protected void Page_Load(object sender, EventArgs e)
{
str strCover = Int32.Parse(Request.QueryString["Cover"].ToString());
string sql = "select GameImage from GameType where Cover='+strCover+'";

myCn.Open();
SqlDataAdapter sda=new SqlDataAdapter(strsql,myCn);
sda.Fill(myDs);
myDv=myDs.Tables[0].DefaultView;
try
{
if (dr.Read())
{
Response.BinaryWrite((byte[])myDv["GameImage"]);
Response.End();
}
}
catch { }
dr.Close();
}


之后在datalist控件中些这样的绑定:
<img id="imgDiplomata" border="0" height="0"src="ShowImage.aspx?Cover=<%# DataBinder.Eval(Container.DataItem,"Cover")%>" width="0" alt="" />


2006-08-21 14:16
快速回复:如何用datalist控件显示SQL Server中的图片!?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020344 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved