ASP.NET网页设计.NET在SQL Server中的图片存取手艺
听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;
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.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
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
页:
[1]