各位老大,用longraw格式存在oracle的图片怎样在c#中显示出来? 如题, 表是pic,字段是id(varchar2)、photo(longraw),在网页中显示,请给段代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 主要代码MemoryStream buf=new MemoryStream((byte[])reader[0]); //reader是datareader,是你那个存图片的字段Image image=Image.FromStream(buf,true); pictureBox1.Image=image; web的直接Response.BinaryWrite((byte[])reader[0])就出来了.不过你当前页面就是一张图片了img src='img.aspx'img.aspx是生成图片的页面 能给出个完整的在gridview里显示的代码吗? http://tech.ddvip.com/2008-10/122371094676974.html看这个吧..和我说的原理是一样的.你只要把取图片的部分改成oracle的就行了. 添加ImageHandler.ashxpublic class ImageHandler : IHttpHandler{ public void ProcessRequest(HttpContext context) { string imageid = context.Request.QueryString["ImID"]; OracleConnection connection = new OracleConnection("连接串"); connection.Open(); OracleCommand command = new OracleCommand( "select Image from Image where ImageID=" + imageid, connection); OracleDataReader dr = command.ExecuteReader(); dr.Read(); context.Response.BinaryWrite((Byte[])dr[0]); connection.Close(); context.Response.End(); } public bool IsReusable { get{return false;} }}绑定Gridview控件<asp:GridView Width="500px" ID="gvImages" runat="server" AutoGenerateColumns="False" > <Columns> <asp:BoundField HeaderText = "Image Name" DataField="imagename" /> <asp:TemplateField HeaderText="Image"> <ItemTemplate> <asp:Image ID="Image1" runat="server" ImageUrl='<%# "ImageHandler.ashx?ImID="+ Eval("ImageID") %>'/> </ItemTemplate> </asp:TemplateField> </Columns></asp:GridView>OracleConnection connection = new OracleConnection("连接串");OracleCommand command = new OracleCommand("SELECT imagename,ImageIDfrom [Image]", connection);SqlDataAdapter ada = new SqlDataAdapter(command); DataTable dt = new DataTable();ada.Fill(dt);gvImages.DataSource = dt;gvImages.DataBind();http://tech.ddvip.com/2008-10/122371094676974.html 上边的ImageHandler.ashx完全可以用aspx来代替只要修改几处即可aspx.cs的page_load方法中:string imageid = Request.QueryString["ImID"]; OracleConnection connection = new OracleConnection("连接串"); connection.Open(); OracleCommand command = new OracleCommand( "select Image from Image where ImageID=" + imageid, connection); OracleDataReader dr = command.ExecuteReader(); dr.Read(); Response.BinaryWrite((Byte[])dr[0]); connection.Close(); Response.End();<asp:GridView Width="500px" ID="gvImages" runat="server" AutoGenerateColumns="False" > <Columns> <asp:BoundField HeaderText = "Image Name" DataField="imagename" /> <asp:TemplateField HeaderText="Image"> <ItemTemplate> <asp:Image ID="Image1" runat="server" ImageUrl='<%# "xxx.aspx?ImID="+ Eval("ImageID") %>'/> </ItemTemplate> </asp:TemplateField> </Columns></asp:GridView> 不知道ado.net执行存储过程的语法错在那里 解释一下 winform中点击子结点时打开一个网页的问题 vs2008 工具箱控件消失 在C#窗体程序中如何用最简单的方法判断多个没有关系的文本框不为空! 关于设置启动页的问题(急) C#的程序(PE)如何在win9x中运行?没有NET 平台能用吗?菜鸟发问。。 绘图与timer的问题 问一个关于图片验证码读取的问题 这个功能要怎么实现 大家帮忙看下这段关于二维的代码怎么编译有错呢 UDP
MemoryStream buf=new MemoryStream((byte[])reader[0]); //reader是datareader,是你那个存图片的字段
Image image=Image.FromStream(buf,true);
pictureBox1.Image=image;
就出来了.不过你当前页面就是一张图片了
img src='img.aspx'
img.aspx是生成图片的页面
能给出个完整的在gridview里显示的代码吗?
看这个吧..和我说的原理是一样的.你只要把取图片的部分改成oracle的就行了.
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string imageid = context.Request.QueryString["ImID"];
OracleConnection connection =
new OracleConnection("连接串");
connection.Open();
OracleCommand command = new OracleCommand(
"select Image from Image where ImageID=" + imageid,
connection);
OracleDataReader dr = command.ExecuteReader();
dr.Read();
context.Response.BinaryWrite((Byte[])dr[0]);
connection.Close();
context.Response.End();
}
public bool IsReusable
{
get{return false;}
}
}绑定Gridview控件<asp:GridView Width="500px" ID="gvImages" runat="server"
AutoGenerateColumns="False" >
<Columns>
<asp:BoundField HeaderText = "Image Name"
DataField="imagename" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# "ImageHandler.ashx?ImID="+ Eval("ImageID")
%>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>OracleConnection connection = new OracleConnection("连接串");
OracleCommand command = new OracleCommand("SELECT imagename,ImageID
from [Image]", connection);
SqlDataAdapter ada = new SqlDataAdapter(command);
DataTable dt = new DataTable();
ada.Fill(dt);
gvImages.DataSource = dt;
gvImages.DataBind();
http://tech.ddvip.com/2008-10/122371094676974.html
只要修改几处即可
aspx.cs的page_load方法中:
string imageid = Request.QueryString["ImID"];
OracleConnection connection =
new OracleConnection("连接串");
connection.Open();
OracleCommand command = new OracleCommand(
"select Image from Image where ImageID=" + imageid,
connection);
OracleDataReader dr = command.ExecuteReader();
dr.Read();
Response.BinaryWrite((Byte[])dr[0]);
connection.Close();
Response.End();
<asp:GridView Width="500px" ID="gvImages" runat="server"
AutoGenerateColumns="False" >
<Columns>
<asp:BoundField HeaderText = "Image Name"
DataField="imagename" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# "xxx.aspx?ImID="+ Eval("ImageID")
%>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>