惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - Brave Heart

不能访问Temporary ASP.NET Files的问题 a href="#"与 a href="javascript:void(0)" 的区别 使用 IntelliTrace 调试应用程序 Javascript实现页面跳转的问题 - Brave Heart - 博客园 估计堆的大小 怎样查看SQL Server数据表的数据页结构(转载) "服务器 '*********' 上的 MSDTC 不可用"错误的解决方法 SHTML 教程 自增字段的SQL语句解决方案 优化数据库的方法及SQL语句优化原则 DBA在系统设计、开发中的重要性 ADSI概览 .NET平台网站架构调优实践点滴 SQL SERVER 2005 DATABASE--公用表表达式(CTE) 学习.Net的经典网站(转载自CSDN技术中心) - Brave Heart 操作Excel生成的mht代码 - Brave Heart 基本的xml操作类 - Brave Heart 实现Logo滑动 - Brave Heart 代码:确定两个日期之间的间隔 (Visual C#) - Brave Heart
Asp.Net在SqlServer中的图片存取技术 [转]
Brave Heart · 2008-05-22 · via 博客园 - Brave Heart

在使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来 

一,上传并存入SqlServer 
 数据库结构 
  create table test 
  { 
     id identity(1,1), 
     FImage image 
  } 
  相关的存储过程 
  Create proc UpdateImage 
  ( 
     @UpdateImage Image 
  )
  As 
  Insert Into test(FImage) values(@UpdateImage) 
  GO 

在UpPhoto.aspx文件中添加如下: 
<input id="UpPhoto" name="UpPhoto" runat="server" type="file"> 
<asp:Button id="btnAdd" name="btnAdd" runat="server" Text="上传"></asp:Button> 

然后在后置代码文件UpPhoto.aspx.cs添加btnAdd按钮的单击事件处理代码: 
private void btnAdd_Click(object sender, System.EventArgs e) 

        //获得图象并把图象转换为byte[] 
        HttpPostedFile upPhoto=UpPhoto.PostedFile; 
        int upPhotoLength=upPhoto.ContentLength; 
        byte[] PhotoArray=new Byte[upPhotoLength]; 
        Stream PhotoStream=upPhoto.InputStream; 
        PhotoStream.Read(PhotoArray,0,upPhotoLength); 

        //连接数据库 
        SqlConnection conn=new SqlConnection(); 
        conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa"; 

        SqlCommand cmd=new SqlCommand("UpdateImage",conn); 
        cmd.CommandType=CommandType.StoredProcedure; 

        cmd.Parameters.Add("@UpdateImage",SqlDbType.Image); 
        cmd.Parameters["@UpdateImage"].Value=PhotoArray; 

        //如果你希望不使用存储过程来添加图片把上面四句代码改为: 
        //string strSql="Insert into test(FImage) values(@FImage)"; 
        //SqlCommand cmd=new SqlCommand(strSql,conn); 
        //cmd.Parameters.Add("@FImage",SqlDbType.Image); 
        //cmd.Parameters["@FImage"].Value=PhotoArray; 

 conn.Open(); 
 cmd.ExecuteNonQuery(); 
 conn.Close(); 

二,从SqlServer中读取并显示出来 
在需要显示图片的地方添加如下代码: 
<asp:image id="imgPhoto" runat="server" ImageUrl="ShowPhoto.aspx"></asp:image> 

ShowPhoto.aspx主体代码: 
private void Page_Load(object sender, System.EventArgs e) 

     if(!Page.IsPostBack) 
     { 
                SqlConnection conn=new SqlConnection() 
                conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa"; 
                
                string strSql="select * from test where id=2";//这里假设获取id为2的图片 
                SqlCommand cmd=new SqlCommand() 
                reader.Read(); 
                Response.ContentType="application/octet-stream"; 
                Response.BinaryWrite((Byte[])reader["FImage"]); 
                Response.End(); 
                reader.Close(); 
     } 
}