仓酷云
标题:
MYSQL网站制作之怎样在SQL Server中保留和输入图片
[打印本页]
作者:
山那边是海
时间:
2015-1-16 22:32
标题:
MYSQL网站制作之怎样在SQL Server中保留和输入图片
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。server建表
为了实验这个例子你必要一个含无数据的table(你能够在如今的库中创立它,也能够创立一个新的数据库),上面是它的布局:
<Pclass=code>
ColumnName Datatype Purpose ID Integer identitycolumnPrimarykey IMGTITLE Varchar(50) Storessomeuserfriendlytitletoidentitytheimage IMGTYPE Varchar(50) Storesimagecontenttype.ThiswillbesameasrecognizedcontenttypesofASP.NET IMGDATA Image Storesactualimageorbinarydata.
复制代码
保留images进SQLServer数据库
为了保留图片到table你起首得从客户端上传它们到你的web服务器。你能够创立一个webform,用TextBox失掉图片的题目,用HTMLFileServerControl失掉图片文件。确信你设定了Form的encType属性为multipart/form-data。
<Pclass=code>
Streamimgdatastream=File1.PostedFile.InputStream; intimgdatalen=File1.PostedFile.ContentLength; stringimgtype=File1.PostedFile.ContentType; stringimgtitle=TextBox1.Text; byte[]imgdata=newbyte[imgdatalen]; intn=imgdatastream.Read(imgdata,0,imgdatalen); stringconnstr= ((NameValueCollection)Context.GetConfig ("appSettings"))["connstr"]; SqlConnectionconnection=newSqlConnection(connstr); SqlCommandcommand=newSqlCommand ("INSERTINTOImageStore(imgtitle,imgtype,imgdata) VALUES(@imgtitle,@imgtype,@imgdata)",connection); SqlParameterparamTitle=newSqlParameter ("@imgtitle",SqlDbType.VarChar,50); paramTitle.Value=imgtitle; command.Parameters.Add(paramTitle); SqlParameterparamData=newSqlParameter ("@imgdata",SqlDbType.Image); paramData.Value=imgdata; command.Parameters.Add(paramData); SqlParameterparamType=newSqlParameter ("@imgtype",SqlDbType.VarChar,50); paramType.Value=imgtype; command.Parameters.Add(paramType); connection.Open(); intnumRowsAffected=command.ExecuteNonQuery(); connection.Close();
复制代码
从数据库中输入图片
如今让我们从数据库中掏出我们方才保留的图片,在这儿,我们将间接将图片输入至扫瞄器。你也能够将它保留为一个文件或做任何你想做的。<Pclass=code>
privatevoidPage_Load(objectsender,System.EventArgse) { stringimgid=Request.QueryString["imgid"]; stringconnstr=((NameValueCollection) Context.GetConfig("appSettings"))["connstr"]; stringsql="SELECTimgdata,imgtypeFROMImageStoreWHEREid=" +imgid; SqlConnectionconnection=newSqlConnection(connstr); SqlCommandcommand=newSqlCommand(sql,connection); connection.Open(); SqlDataReaderdr=command.ExecuteReader(); if(dr.Read()) { Response.ContentType=dr["imgtype"].ToString(); Response.BinaryWrite((byte[])dr["imgdata"]); } connection.Close(); }
复制代码
在下面的代码中我们利用了一个已翻开的数据库,经由过程datareader选择images。接着用Response.BinaryWrite取代Response.Write来显现image文件。那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。
作者:
简单生活
时间:
2015-1-19 16:13
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
作者:
爱飞
时间:
2015-1-28 08:19
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
作者:
海妖
时间:
2015-2-13 11:37
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
作者:
若天明
时间:
2015-3-3 20:49
呵呵,这就是偶想说的
作者:
柔情似水
时间:
2015-3-11 13:39
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
作者:
第二个灵魂
时间:
2015-3-18 21:15
发几份SQL课件,以飨阅者
作者:
飘灵儿
时间:
2015-3-26 18:33
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2