将符合条件的纪录填充到dataset中的datatable
.....
myAdapter.Fill(myDataSet,"img");
byte[] BLOBData = new byte[0];
int c = myDataSet.Tables["img"].Rows.Count;
Response.Clear();
Response.ContentType = "image/GIF";
for (int i = 0 ; i < c ; i++)
{
BLOBData = (byte[])(myDataSet.Tables["img"].Rows[i]["photo"]);
Response.BinaryWrite( BLOBData );
}符合条件的记录有多条,但只能显示第一条纪录的图片
aspx页面没有放任何控件,代码是在cs文件中写的。
请帮忙看一下,是什么方面的问题
.....
myAdapter.Fill(myDataSet,"img");
byte[] BLOBData = new byte[0];
int c = myDataSet.Tables["img"].Rows.Count;
Response.Clear();
Response.ContentType = "image/GIF";
for (int i = 0 ; i < c ; i++)
{
BLOBData = (byte[])(myDataSet.Tables["img"].Rows[i]["photo"]);
Response.BinaryWrite( BLOBData );
}符合条件的记录有多条,但只能显示第一条纪录的图片
aspx页面没有放任何控件,代码是在cs文件中写的。
请帮忙看一下,是什么方面的问题
Response.BinaryWrite( BLOBData );
————————————————————————————————你的代码不就是只显示一个图片的吗?
如果是后面的把前面的覆盖,那应该显示最后一个,但图片显示的只是第一幅,也就是数据库中符合条件的第一条记录,而并不是最后一条记录。
Response.ContentType = "image/GIF";
for (int i = 0 ; i < c ; i++)
{
BLOBData = (byte[])(myDataSet.Tables["img"].Rows[i]["photo"]);
Response.BinaryWrite( BLOBData );
}你是把多个图片作为一个"image/GIF"输出
然而在第一个图片结束时同时输出了结束符号
所以后面的图片虽然输出了,但不能看到。
ASP.NET是绝不应该在代码中使用这个函数的
查询记录集后得到的
id sUserID bPicData Datetime
1 123 <Binary> 2004-2-23
3 123 <Binary> 2004-2-24
5 123 <Binary> 2004-2-25
6 123 <Binary> 2004-2-26
8 123 <Binary> 2004-2-27
10 123 <Binary> 2004-2-28现在要循环得到bPicData字段的图片并显示出来。但是这段代码只会显示第一条记录
可以使用DataGrid显示多张图片。
http://blog.csdn.net/sunnystar365/archive/2005/10/10/498719.aspx
<div align="center"><asp:datagrid id="dgCustomPage" runat="server" HorizontalAlign="Center" CellPadding="4" BackColor="White"
BorderWidth="1px" BorderStyle="None" BorderColor="MediumBlue" Width="240px" Height="9px" PageSize="1" AllowCustomPaging="True"
AllowPaging="True" AutoGenerateColumns="False">
<FooterStyle Font-Bold="True" ForeColor="#C0FFFF" BorderColor="#FFC0C0" BackColor="#FFFF80"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<EditItemStyle VerticalAlign="Middle"></EditItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="White" VerticalAlign="Middle"
BackColor="Coral"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<FONT face="宋体" size="2">这是您现在家里施工情况的图片:</FONT>
</HeaderTemplate>
<ItemTemplate>
<FONT face="宋体">
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0" align="center">
<TR>
<TD colSpan="2" align="center"><FONT face="宋体" size="2">日期:
<asp:Label id=lbImageName runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.Pbegdate")%>'>
</asp:Label></FONT></TD>
</TR>
<TR>
<TD align="center">
<asp:Image id=Imagebutton1 runat="server" ImageAlign="Middle" ImageUrl='<%# "ReadImage.aspx?ImageID="+DataBinder.Eval(Container,"DataItem.id")%>'>
</asp:Image></TD>
<TD align="center"></TD>
</TR>
</TABLE>
</FONT>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle NextPageText="下一张" Font-Size="Smaller" Font-Bold="True" PrevPageText="上一张" HorizontalAlign="Center"
ForeColor="Black" BackColor="#80FF80" Mode="NumericPages"></PagerStyle>
</asp:datagrid></div>
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 System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Web.Security;
using System.Data.SqlClient;
using System.Configuration;
using System.Globalization;namespace demo.test
{
/// <summary>
/// DataGridImage 的摘要说明。
/// </summary>
public class DataGridImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgCustomPage;
int startIndex=0;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
this.dgCustomPage.DataKeyField="id";
if(!IsPostBack)
{
DataGridDataBind();
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgCustomPage.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgCustomPage_PageIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void DataGridDataBind()//绑定DATAGRID
{
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["RBSSqlServer"].ToString().Trim());
SqlDataAdapter da = new SqlDataAdapter("select * from [YjCrmProject] where RTrim(Ltrim(Sub_dh))='CYKM2004_03_10_06'",conn);
DataSet ds = new DataSet();
if(this.ViewState ["startIndex"]!=null)
{
this.startIndex =Convert.ToInt32(this.ViewState["startIndex"].ToString ());
this.Response .Write (this.startIndex);
}
try
{
//从指定的索引开始取PageSize条记录
da.Fill(ds,startIndex,dgCustomPage.PageSize,"CurDataTable");
//填充数据集
da.Fill(ds,"AllDataTable");
//设置DataGrid控件实际要显示的项数
dgCustomPage.VirtualItemCount = ds.Tables["AllDataTable"].Rows.Count;
//进行数据绑定
dgCustomPage.DataSource = ds.Tables["CurDataTable"];
dgCustomPage.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
/*da.Fill(ds,"PPic");
dgCustomPage.DataSource=ds.Tables["PPic"];
dgCustomPage.DataBind();
cn.Close();*/
} private void dgCustomPage_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//设置DataGrid当前页的索引值为用户选择的页的索引
dgCustomPage.CurrentPageIndex = e.NewPageIndex;
//取得当前页为止总共有多少条记录,以便在下一页就从该记录开始读取
startIndex = dgCustomPage.PageSize * dgCustomPage.CurrentPageIndex;
this.ViewState ["startIndex"]=startIndex.ToString ();
//重新绑定数据
dgCustomPage.DataBind();
}
}
}
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 System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Web.Security;
using System.Data.SqlClient;
using System.Configuration;
using System.Globalization;namespace demo.test
{
/// <summary>
/// ReadImage 的摘要说明。
/// </summary>
public class ReadImage : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["RBSSqlServer"].ToString().Trim());
string Query = "select * from [YjCrmProject] where id='"+this.Request["ImageID"]+"'";
SqlCommand myCommand = new SqlCommand(Query, conn);
myCommand.Connection.Open();
this.Response.ContentType="image/gif";
SqlDataReader dr = myCommand.ExecuteReader();
while(dr.Read())
{
this.Response.BinaryWrite((byte[])dr["PPic"]);
} } #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
}
}