社区
Web 开发
帖子详情
谁有jsp,sqlserver图片存取的代码啊
jack315
2005-03-19 10:36:23
谁有jsp,sqlserver图片存取的代码啊,以前csdn上发的好象都是错的,有的话发一下,谢谢了!
...全文
150
3
打赏
收藏
谁有jsp,sqlserver图片存取的代码啊
谁有jsp,sqlserver图片存取的代码啊,以前csdn上发的好象都是错的,有的话发一下,谢谢了!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woodcord
2005-03-20
打赏
举报
回复
见过用asp.net将图片上传并存入SqlServer,jsp的应该原理一样吧!
1,使用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();
}
}
3,在winform中将图片存入sqlserver,并从sqlserver中读取并显示在picturebox中
1,存入sqlserver
数据库结构和使用的存储过过程,同上面的一样
1.1,在窗体中加一个OpenFileDialog控件,命名为ofdSelectPic
1.2,在窗体上添加一个打开文件按钮,添加如下单击事件代码:
Stream ms;
byte[] picbyte;
//ofdSelectPic.ShowDialog();
if (ofdSelectPic.ShowDialog()==DialogResult.OK)
{
if ((ms=ofdSelectPic.OpenFile())!=null)
{
//MessageBox.Show("ok");
picbyte=new byte[ms.Length];
ms.Position=0;
ms.Read(picbyte,0,Convert.ToInt32(ms.Length));
//MessageBox.Show("读取完毕!");
//连接数据库
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=picbyte;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
ms.Close();
}
}
2,读取并显示在picturebox中
2.1 添加一个picturebox,名为ptbShow
2.2 添加一个按钮,添加如下响应事件:
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
string strSql="select FImage from test where id=1";
SqlCommand cmd=new SqlCommand(strSql,conn);
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
reader.Read();
MemoryStream ms=new MemoryStream((byte[])reader["FImage"]);
Image image=Image.FromStream(ms,true);
reader.Close();
conn.Close();
ptbShow.Image=i
jack315
2005-03-20
打赏
举报
回复
我asp完全不懂啊,看的不是很明白,再次恳请有的朋友发一下,谢谢了。
killme2008
2005-03-20
打赏
举报
回复
sql server里面好象有一种类型专门用来表示图片格式的,对sql server不是很了解,去专门的版块问问比较好
九度OJ 1081: 递推数列
题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。 输入: 输入包括5个整数:a0、a1、p、q、k。 输出: 第k个数a(k)对10000的模。 样例输入: 20 1 1 14 5 样例输出: 8359 来源: 2009年清华大学计算
九度OJ 题目1081:递推数列
题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。 输入: 输入包括5个整数:a0、a1、p、q、k。 输出: 第k个数a(k)对10000的模。 样例输入: 20 1 1 14 5 样例输出: 8359 二.题目分析 看似简单的题,网网都有巧妙的设置,能够找到一种时间,
九度OJ 1081 清华09机试题之递推数列
//九度OJ 1081 清华09机试题之递推数列 //http://ac.jobdu.com/problem.php?pid=1081 //利用二分求幂法和蛮生疏的函数递归调用编写的矩阵的大数幂。 //相信N年后的我再回来看看这稚气未脱的刚入道时自己写的
代码
,会心一笑吧哈哈 #include #define N 10000 typedef struct M{ long long h[2][2]
九度OJ题目1081:递推数列-快速幂
矩阵快速幂模版。题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。 输入: 输入包括5个整数:a0、a1、p、q、k。 输出: 第k个数a(k)对10000的模。 样例输入: 20 1 1 14 5 样例输出: 8359思路: 求斐波那契数列的时候,递推公式为 f(n) = f(n-1)+f(
九度oj1081递推数列的算法
这个题用到了矩阵二分乘法,之前没接触过这个东西,这个矩阵二分乘法确实不错,从网上学了一篇文章,进入百度搜九度1081就能搜索到的那边文章,从那里,我学到了矩阵二分乘法和递归算法。 可以将原本o(n)的复杂度弄成o(logn),对于这个题!别小看这个n和logn,比如n为1024,logn居然只有10,差太远了,天壤之别,你logn只要算10次,人家要1024次。 关于递归方法和非递归方法,非递
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章