图片显示问题!求救啊!

JIMIPAGE 2003-09-11 11:25:09
我在一后台编码中放置显示图片的程序
在其中用了循环
但是循环了几次结果还是只显示一张图片
下面是我的程序:
using System;
using System.Web;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using ImageIDAndMessage;

namespace ReadImage {
public class MainDisplay : System.Web.UI.Page {
public void Page_Load(System.Object sender, System.EventArgs e) {

string ImgSubtrahend = "9765546809580935813694157555961373184718";
int intPictureNum = 4;

int intBase = 0;
while (intBase < intPictureNum) {

//建立数据库链接
SqlConnection Con = new SqlConnection("user id=sa;password=;database=northwind;server=jet-server;Connect Timeout=30");
String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);

CmdObj.Parameters.Add("@ImageID", SqlDbType.Char).Value = ImgSubtrahend;
Con.Open();
SqlDataReader SqlReader = CmdObj.ExecuteReader();
SqlReader.Read();
Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型

//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
Response.End();
Con.Close();
intBase += 1;
}
}
}
}
...全文
74 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
我只是想把输出动作重复的做几遍!
xiaozhen 2003-09-11
  • 打赏
  • 举报
回复
你的指针没有移动,对于.net的sqlReader我也不太熟悉,但是感觉应该这样

int intBase = 0;
while (intBase < intPictureNum) {

//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);

SqlReader.movenext; //移动指针,具体请查看相关资料。

intBase += 1;
}
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
我把循环放在这里也还是只显示一张图片:
int intBase = 0;
while (intBase < intPictureNum) {

//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);

intBase += 1;
}
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
那我这个循环应该套在哪个代码行呢?
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
这是我循环的代码:
int intBase = 0;
while (intBase < intPictureNum) {

intBase += 1;
}

river168 2003-09-11
  • 打赏
  • 举报
回复
这样做不行吧, Response.End()后,就不执行后面的了.
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
那如果我的4个图片的文件类型是不一样的呢?
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
能给个例子参考吗? aoyo(遨游)
aoyo 2003-09-11
  • 打赏
  • 举报
回复
你把四个图的数据放到一个数组中,一次输出试试
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
那我为什么不能循环四次输出图象?
难道数据输出完了就没有了?
aoyo 2003-09-11
  • 打赏
  • 举报
回复
每次循环要改变ImgSubtrahend值呀,你现在都是同一条sql语句呀
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
还是不行
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
这样编还是不行!
int intBase = 0;
while (intBase < intPictureNum) {

while (SqlReader.Read()){

Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型

//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
}

intBase += 1;
}
JIMIPAGE 2003-09-11
  • 打赏
  • 举报
回复
请问:luohzad(一心一意想成为c#高手)
while (SqlReader.Read())
{
应包含到哪里?
循环:
int intBase = 0;
while (intBase < intPictureNum) {
应从哪里开始?
luohzad 2003-09-11
  • 打赏
  • 举报
回复
CmdObj.Parameters.Add("@ImageID", SqlDbType.Char).Value = ImgSubtrahend;
Con.Open();
SqlDataReader SqlReader = CmdObj.ExecuteReader();
while (SqlReader.Read())
{
Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型

//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);

intBase += 1;
}

Response.End();
Con.Close();
zhy741209 2003-09-11
  • 打赏
  • 举报
回复
我记得好像有一条语句用来清空response.output.stream.clear
好象是,会不会有关?

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧