下面的代码为什么不能正确显示图形?

triout 2002-04-10 01:30:18
我把图形上传到数据库中了
(不知是否成功,但图形类型中有数据,在上传过程中得到的图形数据能成功输出)
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
string strDataBase="GDEESystem";//"GDEE"+Request.QueryString["db"];
string strTable="GDEE_XM";//Request.QueryString["tb"];
string strImageField="项目图标";//Request.QueryString["fd"];
string strImageType="图标类型";//Request.QueryString["fdt"];
string strIDField="项目ID";//Request.QueryString["idn"];
string strIDValue="ITEM0001";//Request.QueryString["id"];
SqlConnection sqlConn=new SqlConnection("data source=LocalHost;initial catalog="+strDataBase+";persist security info=False;user id=sa;workstation id=王当文;packet size=4096");
sqlConn.Open();
SqlCommand sqlComm=new SqlCommand("select "+strImageField+" ImageData,"+strImageType+" ImageType from "+strTable+" where "+strIDField+"='"+strIDValue+"'",sqlConn);
SqlDataReader dr=sqlComm.ExecuteReader();
Response.Write(sqlComm.CommandText);
if(dr.Read())
{
//Response.ContentType = dr["ImageType"].ToString();
//Response.BinaryWrite((byte[]) dr["ImageData"]);
}
dr.Close();
/* dr=null;
sqlComm.Dispose();
sqlComm=null;
sqlConn.Dispose();
sqlConn=null;*/
}
</script>
...全文
29 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙腾九霄 2002-04-11
  • 打赏
  • 举报
回复
成功就好。
triout 2002-04-11
  • 打赏
  • 举报
回复
谢谢!
上面的问题已经解决,代码本身并没有错误。
出现的错误是我的数据保存的时候出现BUG:我的UPDATE语句是由系统产生的,参数也是系统自动添加的,所以系统自动设置IMAGE数据为16BYTES长,导致错误。
谢谢!!!
龙腾九霄 2002-04-11
  • 打赏
  • 举报
回复
下面是如何输出图形。
private void DataGrid1_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//
if(e.CommandName=="CheckPic" )
{

this.DataGrid1.SelectedIndex=e.Item.ItemIndex;
this.MyCommand.CommandText="select olepic from PicList where id="+e.Item.Cells[1].Text;
//Response.Write(this.MyCommand.CommandText);

this.MyCon.Open();
Byte[] OriPicData=(Byte[])this.MyCommand.ExecuteScalar();
//System.IO.Stream MyPicStream=new MemoryStream();
//Response.Write(MyPicStream.Length);
this.MyCon.Close();

Stream fs=new MemoryStream() ;
fs.Write(OriPicData,0,OriPicData.Length);

System.Drawing.Image MyImage=System.Drawing.Image.FromStream(fs);
System.Drawing.Bitmap MyBitMap=new System.Drawing.Bitmap(MyImage,MyImage.Size);

MyBitMap.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);


//Response.Write("<script>window.alert('dddk')</script>");
//Response.Write(e.Item.Cells[1].Text);
//Response.Write(this.DataGrid1.SelectedIndex);
}
}
龙腾九霄 2002-04-11
  • 打赏
  • 举报
回复
private void Save_Click(object sender, System.EventArgs e)
{

//if(RV1.IsValid&&RV2.IsValid)
//{

string Str_Title,Str_Description;
Str_Title=this.Title.Text;
Str_Description=this.Description.Text;
//title,description,info,olepic,inserttime,ext
//DataSet MyDS2=new DataSet();
//MyDS2=this.MyDs.Clone();
this.MyCommand.CommandText="select inserttime,title,info,description,ext,olepic from PicList order by inserttime desc" ;

System.Data.DataRow myRow=MyDs.Tables[0].NewRow();

//MyDs.Tables["PicList"].NewRow();
myRow[0]=System.DateTime.Now;
myRow[1]=Str_Title;
Stream fs=this.ImgFile.PostedFile.InputStream;

FileInfo newfile=new FileInfo(this.ImgFile.PostedFile.FileName);
byte[] myDoc=new Byte[fs.Length];

fs.Read(myDoc,0,myDoc.Length);

System.Drawing.Image MyImg;
try
{
MyImg=System.Drawing.Image.FromStream(fs);
myRow[2]="大小:"+fs.Length+"字节";
myRow[2]=myRow[2]+";宽:"+MyImg.Width;
myRow[2]=myRow[2]+";高:"+MyImg.Height;
}
catch(Exception Err)
{

if(Err.ToString().IndexOf("System.ArgumentException",0,Err.ToString().Length)>=0)
{
Response.Write("请选择小于4M的图像文件,谢谢!");
Response.Write("<a href='javascript:history.back(-1)'>返回</a>");
}

Response.End();

}





myRow[3]=Str_Description;
myRow[4]=newfile.Extension;
myRow[5]=myDoc;

/*string UpFileName;
if(!this.ImgFile.PostedFile.FileName.Equals(""))
{
UpFileName=this.ImgFile.PostedFile.FileName;
//Response.Write(UpFileName.Substring(UpFileName.Length-3));
myRow[6]=UpFileName.Substring(UpFileName.Length-3);
}
*/

this.MyDs.Tables[0].Rows.InsertAt(myRow,0);

OleDbCommandBuilder cb=new OleDbCommandBuilder(MyAdapter);

try
{
MyAdapter.Update(MyDs,MyDs.Tables[0].TableName);}
catch(Exception)
{
Response.Write("<div align=center>Message Recorded successfully!</div>");
this.MyDs.Tables[0].Rows.Remove(myRow);
//Response.Write(Err.Message);
//if(Err.StackTrace.Length>0)
//Page.RegisterClientScriptBlock("alert","window.alert('您的留言已经记录在数据库里了!');");
//Response.Write("<script>window.alert('您的留言已经记录在数据库里了!')<///script>");
}


this.DataGrid1.DataBind();
this.Title.Text="";
this.Description.Text="";
//}

}
龙腾九霄 2002-04-11
  • 打赏
  • 举报
回复
http://www24.brinkster.com/genie517/index.htm
这是我写的程序,把图片存入access数据库,然后可以从浏览器预览
感兴趣的话,我可以给你源代码。
triout 2002-04-10
  • 打赏
  • 举报
回复
上面的代码中,修改如下:
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
string strDataBase="GDEESystem";//"GDEE"+Request.QueryString["db"];
string strTable="GDEE_XM";//Request.QueryString["tb"];
string strImageField="项目图标";//Request.QueryString["fd"];
string strImageType="图标类型";//Request.QueryString["fdt"];
string strIDField="项目ID";//Request.QueryString["idn"];
string strIDValue="ITEM0001";//Request.QueryString["id"];
SqlConnection sqlConn=new SqlConnection("data source=LocalHost;initial catalog="+strDataBase+";persist security info=False;user id=sa;workstation id=王当文;packet size=4096");
sqlConn.Open();
SqlCommand sqlComm=new SqlCommand("select "+strImageField+" ImageData,"+strImageType+" ImageType from "+strTable+" where "+strIDField+"='"+strIDValue+"'",sqlConn);
SqlDataReader dr=sqlComm.ExecuteReader();
// Response.Write(sqlComm.CommandText);
if(dr.Read())
{
Response.ContentType = dr["ImageType"].ToString();
Response.BinaryWrite((byte[]) dr["ImageData"]);
}
dr.Close();
dr=null;
sqlComm.Dispose();
sqlComm=null;
sqlConn.Dispose();
sqlConn=null;
}
</script>

62,046

社区成员

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

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

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

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