RT:环境 vs2003开发一个类似chinaren的滚动新闻图片(1、2、3那种自动播放)的组件,图片为数据库中image类型字段,图片地址指向一个aspx页面,在里面按照1、2、3对应的ID读取图片数据,然后采用Response.BinaryWrite输出问题:奇怪的是,在循环播放的时候,图片不自动跳转,跟了程序,每次数据读取都正常,可就是图片不换郁闷。并且我的aspx页面地址加了随机字符串,保证JS切换时,一定读取该页面,跟了程序,的确如此。并且图片类型全是jpg的,声明JS程序应该没错,我换成外网静态图片地址时,没有任何问题。贴出来程序,大家帮看看。谢了aspx:private void Page_Load(object sender, System.EventArgs e)
{
_ID = Request["ID"]+"";
if(!this.IsPostBack)
{
string sql=DbSQL.SetPicSql("",_ID);
OleDbDataReader myReader = (OleDbDataReader)DbHelper.ExecuteReader(CommandType.Text,sql);
if(myReader.Read())
{
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
Response.ClearContent();
Response.ContentType =myReader[4].ToString(); -图片类型
Response.BinaryWrite((byte[])myReader[6]); -图片数据 myReader.Close();
}
else
{
Response.ContentType ="image/gif";
Response.WriteFile("../images/null.gif");
}
}
{
_ID = Request["ID"]+"";
if(!this.IsPostBack)
{
string sql=DbSQL.SetPicSql("",_ID);
OleDbDataReader myReader = (OleDbDataReader)DbHelper.ExecuteReader(CommandType.Text,sql);
if(myReader.Read())
{
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
Response.ClearContent();
Response.ContentType =myReader[4].ToString(); -图片类型
Response.BinaryWrite((byte[])myReader[6]); -图片数据 myReader.Close();
}
else
{
Response.ContentType ="image/gif";
Response.WriteFile("../images/null.gif");
}
}
问题找到了,是获取记录的Sql出错了。就这句:string sql=DbSQL.SetPicSql("",_ID); 以前是别人写的,就没看,原来里面生成的SQL程序一直获取最新的那条,郁闷,找了一晚上,浪费了这么久的时间。