• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET针对MSSQL里面的IMAGE字段的图片写入和读取操作代码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
今天遇到一个企业网站的项目,客户要求系统里面的产品数据表要用他们公司的ERP里面的数据库,里面的产品图片还可以更换(他的ERP的产品图片是存放到IMAGE字段里面的),如果没有可更换的图片,那么就直接读取产品表的ERP插入的原图,找了很多时候,才找到个可行读取IMAGE字段并把图片显示在浏览器的代码:
c# 代码
 
  1. try  
  2.        {   
  3.            byte[] imgData;   
  4.            imgData = (byte[])dtbl_pd.Rows[0]["yytp"];//图片IMAGE字段   
  5.            int iLength = imgData.Length;   
  6.            //  FileStream fs = new FileStream("E:\\Project\\CompanyWebSite\\1.gif", System.IO.FileMode.Create, System.IO.FileAccess.Write);//可用于生成实际的文件   
  7.            //  fs.Write(imgData, 0, iLength);   
  8.     //fs.Close();   
  9.            Response.OutputStream.Write(imgData, 0, iLength);   
  10.        }   
  11.        catch (Exception ex)   
  12.        {   
  13.   
  14.        }  

 

调用很简单,比如上面的代码所在的页面名为:Img.aspx,那么可以在需要的页面里面插入:

<img src="Img.aspx" />

另外有了读取顺便也提供个插入吧,经过测试为可行的

InsertImage.aspx关键代码:

HTML代码
 
  1. <form enctype="multipart/form-data" runat="server" id="Form1">  
  2.     <table runat="server" width="700" align="left" id="Table1" cellpadding="0" cellspacing="0" border="0">  
  3.         <tbody>  
  4.         <tr>  
  5.             <td>上传图片(选择你要上传的图片)</td>  
  6.             <td>  
  7.             <input type="file" id="UP_FILE" runat="server" style="Width:320" accept="text/*" name="UP_FILE" />  
  8.             </td>  
  9.         </tr>  
  10.         <tr>  
  11.             <td>文件说明(添加上传图片说明,如:作者、出处) </td>  
  12.             <td>  
  13.             <asp:TextBox RUNAT="server" WIDTH="239" ID="txtDescription" />  
  14.             </td>  
  15.         </tr>  
  16.         <tr>  
  17.             <td>  
  18.             <asp:Label RUNAT="server" ID="txtMessage" FORECOLOR="red"  />  
  19.             </td>  
  20.             <td>  
  21.             <asp:Button ID="Button1" RUNAT="server" WIDTH="239" onCLICK="Button_Submit" TEXT="UploadImage" /></td>  
  22.         </tr>  
  23.     </tbody>  
  24.     </table>  
  25. </form>  

InsertImage.aspx.cs关键代码:

 c# 代码

 
  1. protected void Button_Submit(System.Object sender, System.EventArgs e)   
  2. {   
  3.     HttpPostedFile UpFile = UP_FILE.PostedFile;  //HttpPostedFile对象,用于读取图象文件属性   
  4.     FileLength = UpFile.ContentLength;     //记录文件长度   
  5.     try  
  6.     {   
  7.         if (FileLength == 0)   
  8.         {   //文件长度为零时   
  9.             txtMessage.Text = "<b>请你选择你要上传的文件</b>";   
  10.         }   
  11.         else  
  12.         {   
  13.             Byte[] FileByteArray = new Byte[FileLength];   //图象文件临时储存Byte数组   
  14.             Stream StreamObject = UpFile.InputStream;      //建立数据流对像   
  15.             //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度   
  16.             StreamObject.Read(FileByteArray, 0, FileLength);   
  17.             //建立SQL Server链接   
  18.             SqlConnection Con = new SqlConnection("Data Source=Localhost;Initial Catalog=CompanyWebSiteData;User ID=sa;Pwd=chenfeng;");   
  19.             String SqlCmd = "Insert INTO cp (cpbh,yytp) valueS (@cpbh,@Image)";   
  20.             SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);   
  21.             CmdObj.Parameters.Add("@Image", SqlDbType.Binary, FileLength).Value = FileByteArray;   
  22.             CmdObj.Parameters.Add("@cpbh", SqlDbType.VarChar, 200).Value = txtDescription.Text;   
  23.             ////把其它单表数据记录上传   
  24.             //CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar, 200).Value = txtDescription.Text;   
  25.             ////记录文件长度,读取时使用   
  26.             //CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt, 8).Value = UpFile.ContentLength;   
  27.             Con.Open();   
  28.             CmdObj.ExecuteNonQuery();   
  29.             Con.Close();   
  30.             txtMessage.Text = "<p><b>OK!你已经成功上传你的图片</b>";//提示上传成功   
  31.         }   
  32.     }   
  33.     catch (Exception ex)   
  34.     {   
  35.         txtMessage.Text = ex.Message.ToString();   
  36.     }   
  37. }  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Docker &amp; ASP.NET Core (3):发布镜像发布时间:2022-07-10
下一篇:
asp.net跨页面传值(一)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap