仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 581|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计.NET在SQL Server中的图片存取手艺

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)server|sql本文总结怎样在.NetWinForm和.NetWebForm(asp.net)中将图片存进SQLServer中并读取显现的办法。
1.利用asp.net将图片上传并存进SQLServer中,然后从SQLServer中读取并显现出来:
1)上传并存进SQLServer
数据库布局
createtabletest
{
ididentity(1,1),
FImageimage
}
相干的存储历程
CreateprocUpdateImage
(
@UpdateImageImage
)
As
InsertIntotest(FImage)values(@UpdateImage)
GO
在UpPhoto.aspx文件中增加以下:
<inputid="UpPhoto"name="UpPhoto"runat="server"type="file">
<asp:Buttonid="btnAdd"name="btnAdd"runat="server"Text="上传"></asp:Button>
然后在后置代码文件UpPhoto.aspx.cs增加btnAdd按钮的单击事务处置代码:
privatevoidbtnAdd_Click(objectsender,System.EventArgse)
{
//取得图像并把图像转换为byte[]
HttpPostedFileupPhoto=UpPhoto.PostedFile;
intupPhotoLength=upPhoto.ContentLength;
byte[]PhotoArray=newByte[upPhotoLength];
StreamPhotoStream=upPhoto.InputStream;
PhotoStream.Read(PhotoArray,0,upPhotoLength);
//毗连数据库
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="DataSource=localhost;Database=test;UserId=sa;Pwd=sa";
SqlCommandcmd=newSqlCommand("UpdateImage",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
cmd.Parameters["@UpdateImage"].Value=PhotoArray;
//假如你但愿不利用存储历程来增加图片把下面四句代码改成:
//stringstrSql="Insertintotest(FImage)values(@FImage)";
//SqlCommandcmd=newSqlCommand(strSql,conn);
//cmd.Parameters.Add("@FImage",SqlDbType.Image);
//cmd.Parameters["@FImage"].Value=PhotoArray;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
2)从SQLServer中读取并显现出来
在必要显现图片的中央增加以下代码:
<asp:imageid="imgPhoto"runat="server"ImageUrl="ShowPhoto.aspx"></asp:image>
ShowPhoto.aspx主体代码:
privatevoidPage_Load(objectsender,System.EventArgse)
{
if(!Page.IsPostBack)
{
SqlConnectionconn=newSqlConnection()
conn.ConnectionString="DataSource=localhost;Database=test;UserId=sa;Pwd=sa";
stringstrSql="select*fromtestwhereid=2";//这里假定猎取id为2的图片
SqlCommandcmd=newSqlCommand(strSql,conn);
conn.Open();
SqlDataReaderreader=cmd.ExecuteReader();
reader.Read();
Response.ContentType="application/octet-stream";
Response.BinaryWrite((Byte[])reader["FImage"]);
Response.End();
reader.Close();
}
}
2.在WinForm中将图片存进SQLServer,并从SQLServer中读取并显现在picturebox中
1),存进SQLServer
数据库布局和利用的存储过历程,同下面的一样
起首,在窗体中加一个OpenFileDialog控件,定名为ofdSelectPic;
然后,在窗体上增加一个翻开文件按钮,增加以下单击事务代码:
Streamms;
byte[]picbyte;
//ofdSelectPic.ShowDialog();
if(ofdSelectPic.ShowDialog()==DialogResult.OK)
{
if((ms=ofdSelectPic.OpenFile())!=null)
{
//MessageBox.Show("ok");
picbyte=newbyte[ms.Length];
ms.Position=0;
ms.Read(picbyte,0,Convert.ToInt32(ms.Length));
//MessageBox.Show("读取终了!");
//毗连数据库
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="DataSource=localhost;Database=test;UserId=sa;Pwd=sa";
SqlCommandcmd=newSqlCommand("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中
起首,增加一个picturebox,名为ptbShow
然后,增加一个按钮,增加以下呼应事务:
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="DataSource=localhost;Database=test;UserId=sa;Pwd=sa";
stringstrSql="selectFImagefromtestwhereid=1";
SqlCommandcmd=newSqlCommand(strSql,conn);
conn.Open();
SqlDataReaderreader=cmd.ExecuteReader();
reader.Read();
MemoryStreamms=newMemoryStream((byte[])reader["FImage"]);
Imageimage=Image.FromStream(ms,true);
reader.Close();
conn.Close();
ptbShow.Image=image;
原文地点:http://stewen.cnblogs.com/archive/2005/12/20/300587.aspx
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。
小魔女 该用户已被删除
9#
发表于 2015-3-24 06:03:51 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
若天明 该用户已被删除
8#
发表于 2015-3-17 09:32:49 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
乐观 该用户已被删除
7#
发表于 2015-3-10 19:55:42 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
再现理想 该用户已被删除
6#
发表于 2015-3-1 16:03:32 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
海妖 该用户已被删除
5#
发表于 2015-2-10 21:59:42 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
老尸 该用户已被删除
地板
发表于 2015-2-4 22:21:00 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-26 22:56:24 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
谁可相欹 该用户已被删除
沙发
发表于 2015-1-19 18:55:00 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 11:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表