zoukankan
html css js c++ java
Asp.Net在SqlServer中的图片存取
在使用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
();
}
}
查看全文
相关阅读:
了解HDD或SDD磁盘的健康状态
修复丢失的打开方式
Invoke-WebRequest : 请求被中止: 未能创建 SSL/TLS 安全通道。
绕过禁止未登陆用户访问
debug
更新已有数据
编码格式(乱码)
ajax
Http
科学的管理和规范标准
原文地址:https://www.cnblogs.com/RuiLei/p/568741.html
最新文章
SQL Server中行列转换【转】
【转】EasyUI Accordion下的Panel面板初始化时全部折叠
流水报表 SQL累加
【转】利用json获取字符出现次数的代码
string.Format
编码UTF-8的不可映射字符 maven3.2
未与 -source 1.6 一起设置引导类路径
Java和Tomcat类加载机制
没有处理程序要使用以下任何注释:javax.persistence.PersistenceContext
File not found: MANIFEST.MF
热门文章
Aspect Oriented
AspectJ代码修改
nginx反向代理配置
[emerg] the size 10485760 of shared memory zone “tmpcache” conflicts with already declared size 0 in
sql server 使用公共表表达式(CTE)递归
查看登陆事件
使用invoke-webrequest下载文件
获取下载文件的大小
Iexplore常用参数
以指定宽度分割文本
Copyright © 2011-2022 走看看